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 Trueque cet élément est contenu dans le tableau filtré, si la valeur à cet index est Falsecet é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)