Iteração de Matrizes NumPy
- Página Anterior Reestruturação de Matrizes NumPy
- Próxima Página Conexão de Matrizes NumPy
Iteração de array
Iterar significa percorrer os elementos uma vez.
Quando lidamos com arrays multidimensionais no numpy, podemos usar loops básicos do python para realizar essa operação.
Se iterarmos um array 1-D, ele vai percorrer cada elemento uma vez.
Exemplo
Iterar sobre os elementos do seguinte array unidimensional:
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
Iterar sobre o array 2-D
No array 2-D, ele vai percorrer todas as linhas.
Exemplo
Iterar sobre os elementos do seguinte array bidimensional:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: print(x)
Se iterarmos um array n-D, ele vai percorrer a dimensão n-1 uma vez.
Para retornar valores reais, escalares, devemos iterar sobre o array em cada dimensão.
Exemplo
Iterar sobre cada elemento escalar do 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 sobre o array 3-D
No array 3-D, ele vai percorrer todos os arrays 2-D.
Exemplo
Iterar sobre os elementos do seguinte 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 retornar valores reais, escalares, devemos iterar sobre o array em cada dimensão.
Exemplo
Iterar até o 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 sobre o array
função nditer()
é uma função auxiliar, que pode ser usada de iterações muito básicas a muito avançadas. Ela resolve alguns problemas básicos que enfrentamos em iterações, vamos apresentar por exemplo.
iterar sobre cada elemento escalar
No básico for
No loop, iteramos sobre cada escalar do array, precisamos usar n for
Loop, pode ser difícil escrever para arrays com alta dimensão.
Exemplo
Varre o seguinte 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 sobre arrays de diferentes tipos de dados
Podemos usar op_dtypes
Parâmetros, e passe o tipo de dados esperado, para alterar o tipo de dados dos elementos durante a iteração.
O NumPy não altera o tipo de dados dos elementos localmente (os elementos estão dentro do array), portanto, ele precisa de um pouco mais de espaço para executar essa operação, esse espaço extra chamado buffer, nditer()
Ao ativá-lo, passamos os parâmetros flags=['buffered']
.
Exemplo
Navegação por string no array:
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']) print(x)
Iteração com diferentes passos
Podemos usar filtragem e então iterar.
Exemplo
Pule 1 elemento a cada vez que percorrer um elemento escalar da matriz 2D:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]): print(x)
Iteração Enumeração com ndenumerate()
Enumeração é mencionar a ordem de coisas um por um.
Às vezes, precisamos dos índices correspondentes dos elementos ao iterar, para esses casos, podemos usar ndenumerate()
Método.
Exemplo
Enumere os elementos da seguinte matriz 1D:
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
Exemplo
Enumere os elementos da seguinte matriz 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 Reestruturação de Matrizes NumPy
- Próxima Página Conexão de Matrizes NumPy