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.