Chaque élément d’un tableau a une valeur d’index. La valeur d’index commence par 0.
La valeur d’index du premier élément est 0, celle du deuxième élément est 1, celle du troisième élément est 2, et ainsi de suite.
Dans ce chapitre, nous allons récupérer les éléments de tableaux de différentes dimensions en utilisant leurs valeurs d’index.
Il est temps de coder.
Créons un tableau 1D avec 10 éléments aléatoires.
np.random.seed(45) arr1 = np.random.randint(10, size=10) arr1 # array([3, 0, 5, 3, 4, 9, 8, 1, 5, 9])
Tu obtiendras le même ensemble de valeurs si tu utilises la même valeur de seed que moi (45).
Dans la sortie ci-dessus, la valeur d’index de 3 est 0, 0 est 1, 5 est 2, et ainsi de suite.
Récupérons quelques valeurs du tableau en utilisant leur index.
arr1[0], arr1[1], arr1[2] # (3, 0, 5)
Lorsque tu comptes l’index depuis le début, il commence par 0, 1, 2, etc…
Mais si tu comptes l’index à partir de l’inverse, il commence par -1, -2, -3, etc…
Par exemple, pour un tableau comme [1, 2, 3, 4, 5]. La valeur de l’indice inverse de 1 est -5, 2 est -4, 3 est -3, 4 est -2, et 5 est -1.
Utilisons la valeur de l’index inversé et récupérons les 3 dernières valeurs du tableau arr1
.
arr1[-1], arr1[-2], arr1[-3] # (9, 5, 1)
Nous pouvons non seulement saisir les valeurs à l’aide de leur index, mais aussi les remplacer par une nouvelle valeur.
Voyons comment procéder.
Je vais changer le dernier élément de arr1
de 9 à 403.
arr1[-1] = 403 arr1 # array([ 3, 0, 5, 3, 4, 9, 8, 1, 5, 403])
Exercice : Essaye de modifier les valeurs d’autres éléments de
arr1
en utilisant leur indice inverse.
tu sais maintenant comment récupérer et changer un élément dans un tableau 1D.
Voyons maintenant comment récupérer et changer les éléments d’un tableau 2D.
arr2 = np.random.randint(10, size=(3, 5)) # 3 rows | 5 columns arr2 """ array([[6, 8, 7, 8, 5], [2, 8, 1, 6, 4], [8, 4, 6, 4, 9]]) """
Comme il s’agit d’un tableau à deux dimensions, il y a deux positions d’index pour chacune des dimensions.
Par exemple, la première dimension contient 3 éléments, à savoir :
Éléments | Valeur d’indice |
---|---|
[6, 8, 7, 8, 5] | 0 |
[2, 8, 1, 6, 4] | 1 |
[8, 4, 6, 4, 9] | 2 |
index | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
0 | 6 | 8 | 7 | 8 | 5 |
1 | 2 | 8 | 1 | 6 | 4 |
2 | 8 | 4 | 6 | 4 | 9 |
Si tu souhaites récupérer la première ligne, tu peux simplement utiliser arr2[0]
.
arr2[0] # array([6, 8, 7, 8, 5])
Mais si tu souhaites récupérer uniquement l’élément 6 de la première ligne, tu dois utiliser arr2[0, 0]
. ([ligne, colonne])
arr2[0, 0] # 6
Si tu veux récupérer 5, tu dois utiliser arr2[0, 4]
.
N’oublie pas les lignes et les colonnes lorsque tu récupères des valeurs dans un tableau 2D. Spécifie d’abord la ligne, puis la colonne.
Voyons d’autres exemples de code.
arr2[0, 0], arr2[1, 1], arr2[2, 2] # (6, 8, 6)
arr2[1, 2] # 1
arr2[-1, -1] # Élément de la dernière ligne et de la dernière colonne. # OUTPUT: 9
arr2[-2, -4] # Élément dans l'avant-dernière ligne et l'avant-dernière colonne. # 8
Essaye de récupérer plus d’éléments par toi-même.
Modifions la valeur à l’aide des indices.
arr2[-2, -4] = 987 arr2 """ array([[ 6, 8, 7, 8, 5], [ 2, 987, 1, 6, 4], [ 8, 4, 6, 4, 9]]) """
J’espère que tu sais maintenant comment récupérer et modifier des valeurs dans des tableaux NumPy 1D et 2D.
Voyons quelques exemples d’indexation dans un tableau NumPy 3D.
Exercice : Essaye de trouver par toi-même la sortie des exemples de code ci-dessous.
arr3 = np.random.randint(10, size=(2, 3, 4)) arr3 """ array([[[1, 6, 8, 8], [1, 6, 0, 4], [9, 8, 0, 9]], [[2, 6, 7, 0], [0, 2, 9, 2], [6, 0, 9, 6]]]) """
arr3[1, 1, 3] # ___
arr3[-2, 1] # ___
arr3[1] # ___
As-tu trouvé la sortie ? J’espère que oui.
Nous avons vu que nous pouvions modifier la valeur d’un élément d’un tableau.
Mais nous pouvons également modifier la valeur totale d’un tableau.
arr3[0] = 0 arr3 """ array([[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[2, 6, 7, 0], [0, 2, 9, 2], [6, 0, 9, 6]]]) """
Exercice : Essaye de modifier une valeur entière dans un tableau 2D.
Ce chapitre est terminé.
Chapitre suivant 👉 Découpage de tableaux NumPy.