Come filtrare un array numpy (4 esempi)
È possibile utilizzare i seguenti metodi per filtrare i valori di un array NumPy:
Metodo 1: filtra i valori in base a una singola condizione
#filter for values less than 5 my_array[my_array < 5 ]
Metodo 2: filtrare i valori utilizzando la condizione “OR”.
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )]
Metodo 3: filtrare i valori utilizzando la condizione “AND”.
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )]
Metodo 4: filtra i valori contenuti nell’elenco
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])]
Questo tutorial spiega come utilizzare in pratica ciascun metodo con il seguente array NumPy:
import numpy as np
#create NumPy array
my_array = np. array ([1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
#view NumPy array
my_array
array([ 1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
Esempio 1: filtrare i valori in base a una condizione
Il codice seguente mostra come filtrare i valori dell’array NumPy in base a una singola condizione:
#filter for values less than 5 my_array[(my_array < 5 )] array([1, 2, 2, 3]) #filter for values greater than 5 my_array[(my_array > 5 )] array([6,7,10,12,14]) #filter for values equal to 5 my_array[(my_array == 5 )] array([5])
Esempio 2: filtrare i valori utilizzando la condizione “OR”.
Il codice seguente mostra come filtrare i valori dell’array NumPy utilizzando una condizione “OR”:
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )] array([ 1, 2, 2, 3, 10, 12, 14])
Questo filtro restituisce valori dell’array NumPy inferiori a 5 o superiori a 9.
Esempio 3: filtrare i valori utilizzando la condizione “AND”.
Il codice seguente mostra come filtrare i valori dell’array NumPy utilizzando una condizione “AND”:
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )] array([6, 7])
Questo filtro restituisce valori dall’array NumPy maggiori di 5 e minori di 9.
Esempio 4: filtrare i valori contenuti nella lista
Il codice seguente mostra come filtrare i valori dell’array NumPy contenuti in un elenco:
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])] array([ 2, 2, 3, 5, 12])
Questo filtro restituisce solo valori pari a 2, 3, 5 o 12.
Nota : puoi trovare la documentazione completa per la funzione NumPy in1d() qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni di filtraggio comuni in Python:
Come filtrare le righe Pandas DataFrame che contengono una stringa specifica
Come filtrare un Pandas DataFrame su più condizioni
Come utilizzare il filtro “NOT IN” in Pandas DataFrame