Tableau de filtres NumPy
Filtrage des tableaux
Extraire certains éléments d'un tableau existant et créer un nouveau tableau à partir d'eux s'appelle filtering .
Dans NumPy, vous filtrez un tableau à l'aide d'une liste d'index booléens .
Une liste d' index booléens est une liste de booléens correspondant aux index du tableau.
Si la valeur à un index est True
que cet élément est contenu dans le tableau filtré, si la valeur à cet index est
False
cet élément est exclu du tableau filtré.
Exemple
Créez un tableau à partir des éléments d'index 0 et 2 :
import numpy as np
arr = np.array([41, 42, 43, 44])
x = [True,
False, True, False]
newarr = arr[x]
print(newarr)
L'exemple ci-dessus renverra [41, 43]
, pourquoi ?
Parce que le nouveau filtre contient uniquement les valeurs où le tableau de filtres avait la valeur
True
, dans ce cas, les index 0 et 2.
Création du réseau de filtres
Dans l'exemple ci-dessus, nous avons codé en dur les valeurs True
et , mais l'utilisation courante consiste à créer un tableau de filtres basé sur des conditions.False
Exemple
Créez un tableau de filtres qui renverra uniquement les valeurs supérieures à 42 :
import numpy as np
arr = np.array([41, 42, 43, 44])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is higher than 42, set
the value to True, otherwise False:
if element > 42:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Exemple
Créez un tableau de filtres qui renverra uniquement les éléments pairs du tableau d'origine :
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is completely divisble
by 2, set the value to True, otherwise False
if element % 2 == 0:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Création d'un filtre directement à partir d'un tableau
L'exemple ci-dessus est une tâche assez courante dans NumPy et NumPy fournit un bon moyen de l'aborder.
Nous pouvons remplacer directement le tableau au lieu de la variable itérable dans notre condition et cela fonctionnera comme prévu.
Exemple
Créez un tableau de filtres qui renverra uniquement les valeurs supérieures à 42 :
import numpy as np
arr = np.array([41, 42, 43, 44])
filter_arr = arr
> 42
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Exemple
Créez un tableau de filtres qui renverra uniquement les éléments pairs du tableau d'origine :
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)