Tableaux de recherche NumPy


Recherche de tableaux

Vous pouvez rechercher une certaine valeur dans un tableau et renvoyer les index qui correspondent.

Pour rechercher un tableau, utilisez la where()méthode.

Exemple

Trouvez les index dont la valeur est 4 :

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.where(arr == 4)

print(x)

L'exemple ci-dessus renverra un tuple : (array([3, 5, 6],)

Ce qui signifie que la valeur 4 est présente aux index 3, 5 et 6.

Exemple

Trouvez les index où les valeurs sont paires :

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 0)

print(x)

Exemple

Trouvez les index où les valeurs sont impaires :

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 1)

print(x)


Recherche triée

Il existe une méthode appelée searchsorted()qui effectue une recherche binaire dans le tableau et renvoie l'index où la valeur spécifiée serait insérée pour maintenir l'ordre de recherche.

La searchsorted()méthode est supposée être utilisée sur des tableaux triés.

Exemple

Trouvez les index où la valeur 7 doit être insérée :

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7)

print(x)

Explication de l'exemple : Le chiffre 7 doit être inséré sur l'index 1 pour conserver l'ordre de tri.

La méthode commence la recherche à partir de la gauche et renvoie le premier index où le nombre 7 n'est plus supérieur à la valeur suivante.

Rechercher du côté droit

Par défaut, l'index le plus à gauche est renvoyé, mais nous pouvons side='right'choisir de renvoyer l'index le plus à droite à la place.

Exemple

Trouvez les index où la valeur 7 doit être insérée, en partant de la droite :

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7, side='right')

print(x)

Explication de l'exemple : Le chiffre 7 doit être inséré sur l'index 2 pour conserver l'ordre de tri.

La méthode commence la recherche à partir de la droite et renvoie le premier index où le nombre 7 n'est plus inférieur à la valeur suivante.

Valeurs multiples

Pour rechercher plusieurs valeurs, utilisez un tableau avec les valeurs spécifiées.

Exemple

Trouvez les index où les valeurs 2, 4 et 6 doivent être insérées :

import numpy as np

arr = np.array([1, 3, 5, 7])

x = np.searchsorted(arr, [2, 4, 6])

print(x)

La valeur de retour est un tableau : [1 2 3]contenant les trois index où 2, 4, 6 seraient insérés dans le tableau d'origine pour maintenir l'ordre.


Testez-vous avec des exercices

Exercer:

Utilisez la méthode NumPy correcte pour trouver tous les éléments avec la valeur 4.

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.(arr == 4)