NumPy- zoekmatrices
Zoeken in arrays
U kunt in een array naar een bepaalde waarde zoeken en de indexen retourneren die een overeenkomst krijgen.
Gebruik de where()
methode om een array te doorzoeken.
Voorbeeld
Zoek de indexen waar de waarde 4 is:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x =
np.where(arr == 4)
print(x)
Het bovenstaande voorbeeld retourneert een tuple: (array([3, 5, 6],)
Wat betekent dat de waarde 4 aanwezig is bij index 3, 5 en 6.
Voorbeeld
Zoek de indexen waar de waarden even zijn:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 0)
print(x)
Voorbeeld
Zoek de indexen waar de waarden oneven zijn:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 1)
print(x)
Zoeken Gesorteerd
Er is een methode aangeroepen searchsorted()
die een binaire zoekopdracht in de array uitvoert en de index retourneert waar de opgegeven waarde zou worden ingevoegd om de zoekvolgorde te behouden.
De searchsorted()
methode wordt verondersteld te worden gebruikt op gesorteerde arrays.
Voorbeeld
Zoek de indexen waar de waarde 7 moet worden ingevoegd:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7)
print(x)
Voorbeeld uitgelegd: Het nummer 7 moet op index 1 worden ingevoegd om de sorteervolgorde te behouden.
De methode begint de zoekopdracht vanaf de linkerkant en retourneert de eerste index waarbij het getal 7 niet langer groter is dan de volgende waarde.
Zoek vanaf de rechterkant
Standaard wordt de meest linkse index geretourneerd, maar we kunnen geven side='right'
om in plaats daarvan de meest rechtse index te retourneren.
Voorbeeld
Zoek de indexen waar de waarde 7 moet worden ingevoegd, beginnend van rechts:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7, side='right')
print(x)
Voorbeeld uitgelegd: Het cijfer 7 moet op index 2 worden ingevoegd om de sorteervolgorde te behouden.
De methode start de zoekopdracht vanaf de rechterkant en retourneert de eerste index waarbij het getal 7 niet langer kleiner is dan de volgende waarde.
Meerdere waarden
Gebruik een array met de opgegeven waarden om naar meer dan één waarde te zoeken.
Voorbeeld
Zoek de indexen waar de waarden 2, 4 en 6 moeten worden ingevoegd:
import numpy as np
arr = np.array([1,
3, 5, 7])
x =
np.searchsorted(arr, [2, 4, 6])
print(x)
De geretourneerde waarde is een array: [1 2 3]
met de drie indexen waar 2, 4, 6 in de oorspronkelijke array zouden worden ingevoegd om de volgorde te behouden.