Itération de tableau NumPy
Itérer des tableaux
Itérer signifie parcourir les éléments un par un.
Comme nous traitons des tableaux multidimensionnels dans numpy, nous pouvons le faire en utilisant la
for
boucle de base de python.
Si nous itérons sur un tableau 1-D, il parcourra chaque élément un par un.
Exemple
Itérer sur les éléments du tableau 1D suivant :
import numpy as np
arr = np.array([1, 2, 3])
for x in arr:
print(x)
Itération de tableaux 2D
Dans un tableau 2-D, il passera par toutes les lignes.
Exemple
Itérer sur les éléments du tableau 2D suivant :
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x
in arr:
print(x)
Si nous itérons sur un tableau n -D, il passera par la n-1ème dimension une par une.
Pour renvoyer les valeurs réelles, les scalaires, nous devons itérer les tableaux dans chaque dimension.
Exemple
Itérez sur chaque élément scalaire du tableau 2D :
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x
in arr:
for y in x:
print(y)
Itération de tableaux 3D
Dans un tableau 3-D, il passera par tous les tableaux 2-D.
Exemple
Itérer sur les éléments du tableau 3D suivant :
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9],
[10, 11, 12]]])
for x
in arr:
print(x)
Pour renvoyer les valeurs réelles, les scalaires, nous devons itérer les tableaux dans chaque dimension.
Exemple
Itérer jusqu'aux scalaires :
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9],
[10, 11, 12]]])
for x
in arr:
for y in x:
for z in y:
print(z)
Itération de tableaux à l'aide de nditer()
La fonction nditer()
est une fonction d'aide qui peut être utilisée à partir d'itérations très basiques jusqu'à des itérations très avancées. Il résout certains problèmes de base auxquels nous sommes confrontés lors de l'itération, passons en revue avec des exemples.
Itérer sur chaque élément scalaire
Dans les for
boucles de base, en parcourant chaque scalaire d'un tableau, nous devons utiliser
n
for
boucles qui peuvent être difficiles à écrire pour les tableaux à très haute dimensionnalité.
Exemple
Parcourez le tableau 3D suivant :
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
for x in np.nditer(arr):
print(x)
Itération d'un tableau avec différents types de données
Nous pouvons utiliser un op_dtypes
argument et lui transmettre le type de données attendu pour modifier le type de données des éléments lors de l'itération.
NumPy ne change pas le type de données de l'élément en place (où l'élément est dans le tableau) donc il a besoin d'un autre espace pour effectuer cette action, cet espace supplémentaire est appelé buffer, et pour l'activer dans nditer()
we pass flags=['buffered']
.
Exemple
Parcourez le tableau sous forme de chaîne :
import numpy as np
arr = np.array([1, 2, 3])
for x in
np.nditer(arr, flags=['buffered'], op_dtypes=['S']):
print(x)
Itérer avec différentes tailles de pas
Nous pouvons utiliser le filtrage et le suivi d'itérations.
Exemple
Parcourez chaque élément scalaire du tableau 2D en sautant 1 élément :
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
for x in np.nditer(arr[:, ::2]):
print(x)
Itération énumérée à l'aide de ndenumerate()
L'énumération signifie mentionner le numéro de séquence de quelque chose un par un.
Parfois, nous avons besoin de l'index correspondant de l'élément lors de l'itération, la ndenumerate()
méthode peut être utilisée pour ces cas d'utilisation.
Exemple
Énumérer sur les éléments de tableaux 1D suivants :
import numpy as np
arr = np.array([1, 2, 3])
for idx, x in
np.ndenumerate(arr):
print(idx, x)
Exemple
Énumérer sur les éléments de tableau 2D suivants :
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
for idx, x in np.ndenumerate(arr):
print(idx, x)