Iteración de array de NumPy
- Página anterior Reestructuración de array de NumPy
- Página siguiente Conexión de array de NumPy
Iteración de array
Iterar significa recorrer elementos paso a paso.
Cuando trabajamos con arrays multidimensionales en numpy, podemos usar bucles for básicos de python para realizar esta operación.
Si iteramos un array 1-D, recorrerá cada elemento paso a paso.
Ejemplo
Iterar los elementos del siguiente array unidimensional:
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
Iterar el array 2-D
En el array 2-D, recorrerá todas las filas.
Ejemplo
Iterar los elementos del siguiente array bidimensional:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: print(x)
Si iteramos un array n-D, recorrerá la dimensión n-1 paso a paso.
Para devolver valores reales, escalares, debemos iterar cada array en cada dimensión.
Ejemplo
Iterar cada elemento escalar del array 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)
Iterar el array 3-D
En el array 3-D, recorrerá todos los arrays 2-D.
Ejemplo
Iterar los elementos del siguiente array 3-D:
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)
Para devolver valores reales, escalares, debemos iterar cada array en cada dimensión.
Ejemplo
Iterar hasta el escalar:
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)
Usar nditer() para iterar el array
Función nditer()
Es una función auxiliar que se puede usar desde iteraciones muy básicas hasta muy avanzadas. Resuelve algunos problemas básicos que enfrentamos en la iteración, y vamos a presentar ejemplos.
Iterar cada elemento escalar
En la iteración básica for
En el bucle, iteramos sobre cada escalar del array, y necesitamos usar n for
El bucle puede ser difícil de escribir para arrays de alta dimensión.
Ejemplo
Recorrer el siguiente array 3-D:
import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) for x in np.nditer(arr): print(x)
Iterar diferentes tipos de datos de arrays
Podemos usar op_dtypes
Parámetros, y transfiere el tipo de datos esperado para cambiar el tipo de datos de los elementos en la iteración.
NumPy no cambia el tipo de datos de los elementos en lugar (los elementos están en el array), por lo que necesita algo de espacio adicional para realizar esta operación, este espacio adicional se llama buffer, para en nditer()
Al activarlo en flags=['buffered']
.
Ejemplo
Recorrer el array en forma de cadena:
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']) print(x)
Iteración con diferentes pasos
Podemos usar un filtro y luego realizar la iteración.
Ejemplo
Al recorrer cada elemento escalar de un array 2D, saltar 1 elemento:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]): print(x)
Iteración de enumeración usando ndenumerate()
La enumeración es la mención de la secuencia de las cosas.
A veces, necesitamos los índices correspondientes de los elementos durante la iteración, para estos casos, se puede usar ndenumerate()
Método.
Ejemplo
Enumere los elementos del siguiente array 1D:
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
Ejemplo
Enumere los elementos del siguiente array 2D:
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)
- Página anterior Reestructuración de array de NumPy
- Página siguiente Conexión de array de NumPy