NumPy Soek Skikkings
Soek skikkings
Jy kan 'n skikking vir 'n sekere waarde soek, en die indekse wat 'n passing kry, terugstuur.
Gebruik die where()
metode om 'n skikking te soek.
Voorbeeld
Vind die indekse waar die waarde 4 is:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x =
np.where(arr == 4)
print(x)
Die voorbeeld hierbo sal 'n tupel terugstuur:(array([3, 5, 6],)
Wat beteken dat die waarde 4 teenwoordig is by indeks 3, 5 en 6.
Voorbeeld
Vind die indekse waar die waardes ewe is:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 0)
print(x)
Voorbeeld
Vind die indekse waar die waardes vreemd is:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 1)
print(x)
Soek Gesorteer
Daar is 'n metode genoem searchsorted()
wat 'n binêre soektog in die skikking uitvoer en die indeks terugstuur waar die gespesifiseerde waarde ingevoeg sal word om die soekvolgorde te handhaaf.
Daar searchsorted()
word aanvaar dat die metode op gesorteerde skikkings gebruik word.
Voorbeeld
Vind die indekse waar die waarde 7 ingevoeg moet word:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7)
print(x)
Voorbeeld verduidelik: Die getal 7 moet op indeks 1 ingevoeg word om die sorteervolgorde te bly.
Die metode begin die soektog van links en gee die eerste indeks terug waar die getal 7 nie meer groter as die volgende waarde is nie.
Soek van die regterkant af
By verstek word die linkerkantste indeks teruggegee, maar ons kan gee side='right'
om eerder die regtermeeste indeks terug te gee.
Voorbeeld
Vind die indekse waar die waarde 7 ingevoeg moet word, begin van regs:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7, side='right')
print(x)
Voorbeeld verduidelik: Die getal 7 moet op indeks 2 ingevoeg word om die sorteervolgorde te bly.
Die metode begin die soektog van regs en gee die eerste indeks terug waar die getal 7 nie meer minder as die volgende waarde is nie.
Veelvuldige waardes
Om vir meer as een waarde te soek, gebruik 'n skikking met die gespesifiseerde waardes.
Voorbeeld
Vind die indekse waar die waardes 2, 4 en 6 ingevoeg moet word:
import numpy as np
arr = np.array([1,
3, 5, 7])
x =
np.searchsorted(arr, [2, 4, 6])
print(x)
Die terugkeerwaarde is 'n skikking: [1 2 3]
bevat die drie indekse waar 2, 4, 6 in die oorspronklike skikking ingevoeg sal word om die volgorde te handhaaf.