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.


Test jezelf met oefeningen

Oefening:

Gebruik de juiste NumPy-methode om alle items met de waarde 4 te vinden.

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.(arr == 4)