Filtraggio degli array NumPy
- Pagina precedente Ordinamento degli array NumPy
- Pagina successiva Casuale NumPy
Filtraggio degli array
Estrarre alcuni elementi da un array esistente e crearne un nuovo array chiamato filtraggio (filtering).
In NumPy, utilizziamo una lista di indici booleani per filtrare gli array.
Una lista di indici booleani è una lista di valori booleani che corrispondono agli indici dell'array.
se il valore all'indice è True
quindi l'elemento verrà incluso nell'array filtrato; se il valore all'indice è False
quindi l'elemento verrà escluso dall'array filtrato.
Esempio
Creare un array utilizzando gli elementi agli indici 0 e 2, 4:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
Nel caso precedente, tornerà [61, 63, 65]
perché?
Poiché il nuovo filtro contiene solo i valori True
quindi in questo caso, gli indici sono 0 e 2, 4.
creare un array di filtri
Nel caso precedente, abbiamo creato il valore di True
e False
Il valore è codificato in modo statico, ma di solito viene utilizzato per creare un array di filtri in base a condizioni.
Esempio
Creare un array di filtri che restituisca solo i valori maggiori di 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # Creare una lista vuota filter_arr = [] # Eseguire un ciclo su ogni elemento di arr for element in arr: # Se l'elemento è maggiore di 62, impostare il valore su True, altrimenti su False: if element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Esempio
Creare un array di filtri che restituisca solo gli elementi pari dell'array originale:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # Creare una lista vuota filter_arr = [] # Eseguire un ciclo su ogni elemento di arr for element in arr: # Se l'elemento può essere diviso per 2, impostiamo il valore su True, altrimenti impostiamo su False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Creare direttamente un array di filtri
L'esempio precedente è una tâche comune in NumPy, NumPy fornisce un ottimo metodo per risolvere questo problema.
Possiamo sostituire direttamente l'array nella condizione invece della variabile iterable, e funzionerà come ci aspettiamo.
Esempio
Creare un array di filtri che restituisca solo i valori maggiori di 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 newarr = arr[filter_arr] print(filter_arr) print(newarr)
Esempio
Creare un array di filtri che restituisca solo gli elementi pari dell'array originale:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) filter_arr = arr % 2 == 0 newarr = arr[filter_arr] print(filter_arr) print(newarr)
- Pagina precedente Ordinamento degli array NumPy
- Pagina successiva Casuale NumPy