Tablice wyszukiwania NumPy
Wyszukiwanie tablic
Możesz przeszukać tablicę pod kątem określonej wartości i zwrócić indeksy, które uzyskają dopasowanie.
Aby przeszukać tablicę, użyj where()
metody.
Przykład
Znajdź indeksy, których wartość wynosi 4:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x =
np.where(arr == 4)
print(x)
Powyższy przykład zwróci krotkę:(array([3, 5, 6],)
Co oznacza, że wartość 4 występuje przy indeksie 3, 5 i 6.
Przykład
Znajdź indeksy, w których wartości są parzyste:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 0)
print(x)
Przykład
Znajdź indeksy, w których wartości są nieparzyste:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 1)
print(x)
Wyszukaj posortowane
Istnieje wywoływana metoda, searchsorted()
która wykonuje wyszukiwanie binarne w tablicy i zwraca indeks, w którym zostałaby wstawiona określona wartość, aby zachować kolejność wyszukiwania.
Zakłada searchsorted()
się, że metoda jest używana na posortowanych tablicach.
Przykład
Znajdź indeksy, w których należy wstawić wartość 7:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7)
print(x)
Wyjaśnienie przykładu: liczba 7 powinna być wstawiona do indeksu 1, aby zachować porządek sortowania.
Metoda rozpoczyna wyszukiwanie od lewej strony i zwraca pierwszy indeks, w którym liczba 7 nie jest już większa niż następna wartość.
Szukaj z prawej strony
Domyślnie zwracany jest lewy indeks, ale side='right'
zamiast tego możemy zwrócić indeks lewy najbardziej.
Przykład
Znajdź indeksy, w których należy wstawić wartość 7, zaczynając od prawej:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7, side='right')
print(x)
Wyjaśniony przykład: liczba 7 powinna zostać wstawiona do indeksu 2, aby zachować porządek sortowania.
Metoda rozpoczyna wyszukiwanie od prawej strony i zwraca pierwszy indeks, w którym liczba 7 nie jest już mniejsza niż następna wartość.
Wiele wartości
Aby wyszukać więcej niż jedną wartość, użyj tablicy z określonymi wartościami.
Przykład
Znajdź indeksy, w których należy wstawić wartości 2, 4 i 6:
import numpy as np
arr = np.array([1,
3, 5, 7])
x =
np.searchsorted(arr, [2, 4, 6])
print(x)
Wartość zwracana to tablica: [1 2 3]
zawierająca trzy indeksy, w których 2, 4, 6 zostałyby wstawione do oryginalnej tablicy, aby zachować porządek.