Iterazione di Array di NumPy
- Pagina precedente Rimodellamento di Array di NumPy
- Pagina successiva Connettione di Array di NumPy
Iterazione dell'array
Iterare significa esplorare gli elementi uno per uno.
Quando lavoriamo con array multidimensionali in numpy, possiamo completare l'operazione utilizzando il ciclo for di base di python.
Se iteriamo un array 1-D, esplorerà ogni elemento una volta.
Esempio
Iterare sui elementi del seguente array 1-D:
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
Iterare su array 2-D
Nel array 2-D, esplorerà tutte le righe.
Esempio
Iterare sui elementi del seguente array bidimensionale:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: print(x)
Se iteriamo un array n-D, passerà una volta per la dimensione n-1.
Per restituire il valore effettivo, lo scalare, dobbiamo iterare su ogni dimensione dell'array.
Esempio
Iterare su ogni elemento scalare dell'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)
Iterare su array 3-D
Nel array 3-D, esplorerà tutti gli array 2-D.
Esempio
Iterare sui elementi del seguente 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)
Per restituire il valore effettivo, lo scalare, dobbiamo iterare su ogni dimensione dell'array.
Esempio
Iterare fino al scalare:
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)
Utilizzare nditer() per iterare su array
Funzione nditer()
È una funzione ausiliaria che può essere utilizzata da un iterazione molto elementare a un iterazione molto avanzata. Risolve alcuni problemi basilari che ci incontriamo durante l'iterazione, e presentiamo attraverso esempi.
Iterare su ogni elemento scalare
In un iterazione di base for
Nel ciclo, per iterare su ogni scalare dell'array, dobbiamo utilizzare n for
Il ciclo, per array ad alta dimensione può essere difficile da scrivere.
Esempio
Eseguire la scansione del seguente 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)
iterare su array di diversi tipi di dati
Possiamo utilizzare op_dtypes
Parametri, e passare il tipo di dati atteso per modificare il tipo di dati degli elementi durante l'iterazione.
NumPy non modifica in loco il tipo di dati degli elementi (gli elementi si trovano nell'array), quindi ha bisogno di uno spazio aggiuntivo per eseguire questa operazione, questo spazio aggiuntivo si chiama buffer, per nditer()
Per attivarlo, passiamo come parametri flags=['buffered']
.
Esempio
Eseguire la scansione dell'array in forma di stringa:
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']) print(x)
Iterazione a passo diverso
Possiamo utilizzare filtri e quindi iterare.
Esempio
Ogni volta che si esplora un elemento scalare della matrice 2D, si salta 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)
Iterazione enumerativa con ndenumerate()
Elenca è l'azione di menzionare uno per uno gli elementi in ordine.
A volte, durante l'iterazione, abbiamo bisogno degli indici degli elementi corrispondenti, per questi casi, possiamo utilizzare ndenumerate()
Metodo.
Esempio
Elenca gli elementi della seguente matrice 1D:
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
Esempio
Elenca gli elementi della seguente matrice 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)
- Pagina precedente Rimodellamento di Array di NumPy
- Pagina successiva Connettione di Array di NumPy