Filtrowanie tablic w NumPy
- Poprzednia strona Sortowanie tablic w NumPy
- Następna strona Dane losowe w NumPy
Polecenia rekomendowane:
Filtrowanie tablicy
W NumPy używamy listy indeksów booleana do filtrowania tablic.
lista indeksów booleana to lista wartości booleana odpowiadających indeksom w tablicy.
jeśli wartość na indeksie jest True
, element ten będzie zawarty w wyfiltrowanej tablicy; jeśli wartość na indeksie jest False
, element ten zostanie wykluczony z wyfiltrowanej tablicy.
Przykład
tworzenie tablicy z elementów na indeksach 0 i 2, 4:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
W przykładzie powyższym zwróci się [61, 63, 65]
dlaczego?
ponieważ nowy filtr zawiera tylko wartości z tablicy filtrów True
, więc w tym przypadku, indeksy to 0 i 2, 4.
tworzenie tablicy filtrów
W przykładzie poniżej, tworzymy wartość True
i False
Wartość jest zaimplementowana w sposób sztywny, ale zwykle jest używana do tworzenia tablicy filtrów na podstawie warunków.
Przykład
Utwórz filtrujący ciąg liczb, który zwraca tylko wartości większe niż 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # Utwórz pustą listę filter_arr = [] # Przejdź przez każdy element w arr for element in arr: # Jeśli element jest większy niż 62, wartość ustawiana jest na True, w przeciwnym razie na False: jeśli element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Przykład
Utwórz filtrujący ciąg liczb, który zwraca tylko parzyste elementy oryginalnego ciągu liczb:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # Utwórz pustą listę filter_arr = [] # Przejdź przez każdy element w arr for element in arr: # Jeśli element można podzielić przez 2 bez reszty, ustaw wartość na True, w przeciwnym razie ustaw na False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Tworzenie filtra bezpośrednio z tablicy
Przykład ten jest bardzo powszechnym zadaniem w NumPy, które NumPy rozwiązuje w sposób, który jest dobrym rozwiązaniem.
Możemy bezpośrednio zastąpić tablicę w warunku zamiast zmiennej iterable, co będzie działać tak, jak oczekujemy.
Przykład
Utwórz filtrujący ciąg liczb, który zwraca tylko wartości większe niż 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 newarr = arr[filter_arr] print(filter_arr) print(newarr)
Przykład
Utwórz filtrujący ciąg liczb, który zwraca tylko parzyste elementy oryginalnego ciągu liczb:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) filter_arr = arr % 2 == 0 newarr = arr[filter_arr] print(filter_arr) print(newarr)
- Poprzednia strona Sortowanie tablic w NumPy
- Następna strona Dane losowe w NumPy