NumPy Array Søgning

søge i array

Du kan søge efter (få fat i) en værdi i en array og derefter returnere de indekser, der matcher.

For at søge i en array, brug where() metode.

Eksempel

find indexene for værdien 4:

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

Kør Eksempel

i det foregående eksempel vil det returnere en tuple:(array([3, 5, 6],)

det betyder, at værdien 4 findes i indekserne 3, 5 og 6.

Eksempel

find indexene for værdierne med et lige tal:

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 Eksempel

Eksempel

find indexene for værdierne med et ulige tal:

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 Eksempel

søgeoptimering

der er en som hedder searchsorted() metoden, som udfører binær søgning i en array og returnerer indekset, hvor den specifikke værdi skal indsættes for at opretholde søgefølgen.

antag searchsorted() Metoden bruges til at sortere arrays.

Eksempel

Find indekset, hvor værdien 7 skal indsættes:

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

Kør Eksempel

Eksempel Forklaring:Tal 7 skal indsættes ved indeks 1 for at opretholde sorteringsrækkefølgen.

Metoden søger fra venstre og returnerer den første indeks, hvor tallet 7 ikke længere er større end det næste tal.

Søg fra højre

Som standard returneres den venstreste indeks, men vi kan angive side='right'for at returnere den højreste indeks.

Eksempel

Søg fra højre for at finde indekset, hvor værdien 7 skal indsættes:

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

Kør Eksempel

Eksempel Forklaring:Tal 7 skal indsættes ved indeks 2 for at opretholde sorteringsrækkefølgen.

Metoden søger fra højre og returnerer den første indeks, hvor tallet 7 ikke længere er mindre end det næste tal.

Flere værdier

For at søge flere værdier, brug et array med de ønskede værdier.

Eksempel

Find de indekser, hvor værdierne 2, 4 og 6 skal indsættes:

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

Kør Eksempel

Returværdien er en array:[1 2 3] Inkluderer tre indekser, hvor 2, 4, 6 vil blive indsat i det oprindelige array for at opretholde rækkefølgen.