Filtrage d'Arrays NumPy
- Page précédente Tri d'Arrays NumPy
- Page suivante Aléatoire NumPy
Filtrage de tableau
Extraire certains éléments d'un tableau existant pour en créer un nouveau s'appelle filtrage (filtering).
Dans NumPy, nous utilisons une liste d'indices booléens pour filtrer les tableaux.
Une liste d'indices booléens est une liste de valeurs booléennes correspondant aux indices du tableau.
Si la valeur à l'indice True
Si l'élément est présent dans le tableau filtré ; si la valeur à l'indice False
Si l'élément est absent du tableau filtré.
Exemple
Créer un tableau à partir des éléments aux indices 0 et 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)
L'exemple précédent retournera [61, 63, 65]
Pourquoi ?
Car le nouveau filtre ne contient que les valeurs du tableau de filtres True
des valeurs, donc dans ce cas, les indices sont 0 et 2, 4.
créer un tableau de filtres
Dans l'exemple précédent, nous avons True
et False
La valeur est codée en dur, mais l'utilisation habituelle consiste à créer un tableau de filtres en fonction de la condition.
Exemple
Créer un tableau de filtre qui ne retourne que les valeurs supérieures à 62 :
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # Créer une liste vide filter_arr = [] # Parcourir chaque élément dans arr for element in arr: # Si l'élément est supérieur à 62, alors la valeur est définie sur True, sinon sur False : if element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Exemple
Créer un tableau de filtre qui ne retourne que les éléments pairs de l'array original :
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # Créer une liste vide filter_arr = [] # Parcourir chaque élément dans arr for element in arr: # Si l'élément peut être divisé par 2 sans reste, then set the value to True, otherwise set it to False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Créer directement un tableau de filtre
L'exemple précédent est une tâche très courante dans NumPy, et NumPy offre de bonnes méthodes pour résoudre ce problème.
Nous pouvons remplacer directement l'array dans la condition plutôt que le variable iterable, et cela fonctionnera comme prévu.
Exemple
Créer un tableau de filtre qui ne retourne que les valeurs supérieures à 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)
Exemple
Créer un tableau de filtre qui ne retourne que les éléments pairs de l'array original :
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)
- Page précédente Tri d'Arrays NumPy
- Page suivante Aléatoire NumPy