Iteration de tableau NumPy
- Page précédente Redimensionnement de tableau NumPy
- Page suivante Concaténation de tableau NumPy
Itération de tableau
L'itération signifie parcourir les éléments une à une.
Lorsque nous traitons des tableaux multidimensionnels dans numpy, nous pouvons utiliser les boucles for de base de python pour effectuer cette opération.
Si nous itérons sur un tableau 1-D, il parcourra chaque élément une à une.
Exemple
Itérer sur les éléments du tableau 1-D suivant :
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
Itérer sur le tableau 2-D
Dans le tableau 2-D, il parcourra toutes les lignes.
Exemple
Itérer sur les éléments du tableau 2-D 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 parcourra l'axe n-1 une à une.
Pour retourner les valeurs réelles, les scalaires, nous devons itérer sur chaque dimension du tableau.
Exemple
Itérer sur chaque élément scalaire du tableau 2-D :
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: for y in x: print(y)
Itérer sur le tableau 3-D
Dans le tableau 3-D, il parcourra tous les tableaux 2-D.
Exemple
Itérer sur les éléments du tableau 3-D 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 retourner les valeurs réelles, les scalaires, nous devons itérer sur chaque dimension du tableau.
Exemple
Itérer jusqu'au scalaire :
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érer sur le tableau à l'aide de nditer()
fonction nditer()
est une fonction d'aide, utilisable à partir de l'itération la plus basique jusqu'à la plus avancée. Elle résout certains problèmes de base auxquels nous sommes confrontés lors de l'itération, et nous allons l'expliquer à travers des exemples.
itérer sur chaque élément scalaire
Dans les itérations de base for
Dans la boucle, pour itérer sur chaque scalaire du tableau, nous devons utiliser n for
Les boucles peuvent être difficiles à écrire pour des tableaux à plusieurs dimensions.
Exemple
Parcourir le tableau 3-D 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érer sur des tableaux de différents types de données
Nous pouvons utiliser op_dtypes
Paramètres, et passez le type de données attendu pour modifier le type de données des éléments lors de l'itération.
NumPy ne modifie pas le type de données des éléments en place (les éléments se trouvent dans l'array), donc il a besoin d'un peu d'espace supplémentaire pour effectuer cette opération, cet espace supplémentaire s'appelle le buffer, pour nditer()
Pour l'activer dans flags=['buffered']
。
Exemple
Parcourir l'array 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 des pas différents
Nous pouvons utiliser le filtrage, puis itérer.
Exemple
Chaque fois que nous parcourons un élément scalaire d'un tableau 2D, nous sautons 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 avec ndenumerate()
L'énumération signifie mentionner l'ordre des choses une par une.
Parfois, nous avons besoin des indices correspondants des éléments lors de l'itération, pour ces cas, nous pouvons utiliser ndenumerate()
Méthode.
Exemple
Énumérer les éléments du tableau 1D suivant :
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
Exemple
Énumérer les éléments de la 2D tableau suivant :
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)
- Page précédente Redimensionnement de tableau NumPy
- Page suivante Concaténation de tableau NumPy