Filtrowanie tablic w Numpy w Pythonie
Tablice w Numpy możemy filtrować dzięki wartościom logicznym (bolean) czyli True i False, przypisanym odpowiednim indeksom.
Filtrowanie polega na utworzeniu nowej tablicy poprzez pobieranie niektórych elementów z tablicy istniejącej (tablicy oryginalnej), w zależności czy do indeksu przypisana jest wartość
True czy
False.
Jeśli do indeksu przypisana jest wartość
True, wówczas wartość w tablicy filtrowaniej się wyświetli.
Jeśli do indeksu przypisana jest wartość
False, wówczas wartość w tablicy filtrowanej się nie wyświetli.
Przykład
import numpy as np
x=np.array([1,2,3,4,5])
y=x[[True, False, True, False, True]]
print(y)
[1 3 5] #wynik
Filtrowanie tablic wykorzystując instrukcję warunkową
Najczęściej w celu przefiltrowania tablicy stosujemy instrukcję warunkową:
Przykład
import numpy as np
x=np.array([1,2,3,4,5])
lista=[] #utworzenie pustej listy
for i in x:
if i>2:
lista.append(True)
else:
lista.append(False)
new_array=x[lista]
print(new_array)
[3 4 5] #wynik
Wykorzystując instrukcję warunkową oraz wartości logiczne True i False, możemy przefiltrować tablicę uzyskując wartości
parzyste lub
nieparzyste:
Przykład
import numpy as np
x=np.array([1,2,3,4,5,6])
y=[] # tworzymy pustą listę
for i in x: # iterujemy poprzez każdy element w tablicy
if i%2==0: # jeśli element w tablicy jest podzielny przez dwa, to uzyskujemy
y.append(True) # wartość True, w przeciwnym razie wartość False.
else:
y.append(False)
new=x[y] #tworzymy nową tablicę
print(new)
[2 4 6] #wynik
Możemy zamiast zmiennej iterowalnej bezpośrednio zastąpić tablicę zmienną:
Przykład 1
import numpy as np
x=np.array([1,2,3,4,5,6])
y=x>3
new_array=x[y] #utworzenie nowej tablicy
print(new_array)
[4 5 6] #wynik
Analogicznie do poprzednich przykładów, możemy bezpośrednio z tablicy uzyskać tylko liczby parzyste lub tylko liczby nieparzyste:
Przykład 2
import numpy as np
x=np.array([1,2,3,4,5,6])
y=x%2==0 #zmienna podzielna przez dwa będąca liczbą parzystą
new_array=x[y] #utworzenie nowej tablicy
print(new_array)
[2 4 6] #wynik, liczby tylko parzyste
Przykład 3
import numpy as np
x=np.array([1,2,3,4,5,6])
y=x%2==1 #zmienna podzielna przez dwa będąca liczbą parzystą
new_array=x[y] #utworzenie nowej tablicy
print(new_array)
[1 3 5] #wynik, liczby tylko nieparzyste