NumPy Array sökning

Sök array

Du kan söka efter ett värde i en array (fånga upp) och sedan returnera de matchande indexen.

För att söka i en array, använd where() metod.

Exempel

Sök index för värdet 4:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x = np.where(arr == 4)
print(x)

Kör instans

I föregående exempel returnerar det en tupel:(array([3, 5, 6],)

Det innebär att värdet 4 finns på index 3, 5 och 6.

Exempel

Sök index för jämna värden:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 0)
print(x)

Kör instans

Exempel

Sök index för ojämna värden:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 1)
print(x)

Kör instans

sökordning

Det finns en namn searchsorted() metoden, som utför binär sökning i en array och returnerar indexet där den specifika värdet kan läggas till för att behålla sökordningen.

Anta searchsorted() Metoden används för att sortera arrayer.

Exempel

Sök efter index där värdet 7 bör infogas:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7)
print(x)

Kör instans

Exempel förklaring:Till index 1 bör talet 7 infogas för att behålla sorteringsordningen.

Metoden söker från vänster och returnerar den första indexen där talet 7 inte längre är större än nästa värde.

Sök från höger

Som standard returneras den vänstra indexen, men vi kan ange side='right'För att returnera den högra indexen.

Exempel

Sök efter index där värdet 7 bör infogas från höger:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7, side='right')
print(x)

Kör instans

Exempel förklaring:Till index 2 bör talet 7 infogas för att behålla sorteringsordningen.

Metoden söker från höger och returnerar den första indexen där talet 7 inte längre är mindre än nästa värde.

Flera värden

För att söka efter flera värden, använd en array med specifika värden.

Exempel

Sök efter index där värdena 2, 4 och 6 bör infogas:

import numpy as np
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)

Kör instans

Returvärdet är en array:[1 2 3] Innehåller tre index, där 2, 4 och 6 kommer att infogas i den ursprungliga arrayen för att behålla ordningen.