Comment filtrer un tableau NumPy (4 exemples)
Vous pouvez utiliser les méthodes suivantes pour filtrer les valeurs d’un tableau NumPy :
Méthode 1 : filtrer les valeurs en fonction d’une seule condition
#filter for values less than 5 my_array[my_array < 5]
Méthode 2 : filtrer les valeurs à l’aide de la condition « OU »
#filter for values less than 5 or greater than 9 my_array[(my_array < 5) | (my_array > 9)]
Méthode 3 : filtrer les valeurs à l’aide de la condition « ET »
#filter for values greater than 5 and less than 9 my_array[(my_array > 5) & (my_array < 9)]
Méthode 4 : filtrer les valeurs contenues dans la liste
#filter for values that are equal to 2, 3, 5, or 12 my_array[np.in1d(my_array, [2, 3, 5, 12])]
Ce tutoriel explique comment utiliser chaque méthode en pratique avec le tableau NumPy suivant :
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])
Exemple 1 : Filtrer les valeurs en fonction d’une condition
Le code suivant montre comment filtrer les valeurs du tableau NumPy en fonction d’une seule condition :
#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])
Exemple 2 : Filtrer les valeurs à l’aide de la condition « OU »
Le code suivant montre comment filtrer les valeurs du tableau NumPy à l’aide d’une condition « OU » :
#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])
Ce filtre renvoie les valeurs du tableau NumPy inférieures à 5 ou supérieures à 9.
Exemple 3 : Filtrer les valeurs à l’aide de la condition « ET »
Le code suivant montre comment filtrer les valeurs du tableau NumPy à l’aide d’une condition « ET » :
#filter for values greater than 5 and less than 9 my_array[(my_array > 5) & (my_array < 9)] array([6, 7])
Ce filtre renvoie les valeurs du tableau NumPy supérieures à 5 et inférieures à 9.
Exemple 4 : filtrer les valeurs contenues dans la liste
Le code suivant montre comment filtrer les valeurs du tableau NumPy contenues dans une liste :
#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])
Ce filtre renvoie uniquement les valeurs égales à 2, 3, 5 ou 12.
Remarque : Vous pouvez trouver la documentation complète de la fonction NumPy in1d() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations de filtrage courantes en Python :
Comment filtrer les lignes Pandas DataFrame qui contiennent une chaîne spécifique
Comment filtrer un DataFrame Pandas sur plusieurs conditions
Comment utiliser le filtre « NON IN » dans Pandas DataFrame