Array Filter NumPy
Menyaring Array
Mengeluarkan beberapa elemen dari larik yang ada dan membuat larik baru darinya disebut penyaringan .
Di NumPy, Anda memfilter array menggunakan boolean index list .
Daftar indeks boolean adalah daftar boolean yang sesuai dengan indeks dalam array.
Jika nilai pada indeks adalah True
elemen yang terkandung dalam larik yang difilter, jika nilai pada indeks
False
itu adalah elemen tersebut dikecualikan dari larik yang difilter.
Contoh
Buat array dari elemen pada indeks 0 dan 2:
import numpy as np
arr = np.array([41, 42, 43, 44])
x = [True,
False, True, False]
newarr = arr[x]
print(newarr)
Contoh di atas akan kembali [41, 43]
, mengapa?
Karena filter baru hanya berisi nilai di mana array filter memiliki nilai
True
, dalam hal ini, indeks 0 dan 2.
Membuat Array Filter
Dalam contoh di atas kami mengkodekan nilai True
and False
, tetapi penggunaan yang umum adalah membuat larik filter berdasarkan kondisi.
Contoh
Buat array filter yang hanya akan mengembalikan nilai yang lebih tinggi dari 42:
import numpy as np
arr = np.array([41, 42, 43, 44])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is higher than 42, set
the value to True, otherwise False:
if element > 42:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Contoh
Buat larik filter yang hanya akan mengembalikan elemen genap dari larik asli:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is completely divisble
by 2, set the value to True, otherwise False
if element % 2 == 0:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Membuat Filter Langsung Dari Array
Contoh di atas adalah tugas yang cukup umum di NumPy dan NumPy menyediakan cara yang bagus untuk mengatasinya.
Kami dapat langsung mengganti array alih-alih variabel yang dapat diubah dalam kondisi kami dan itu akan berfungsi seperti yang kami harapkan.
Contoh
Buat array filter yang hanya akan mengembalikan nilai yang lebih tinggi dari 42:
import numpy as np
arr = np.array([41, 42, 43, 44])
filter_arr = arr
> 42
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Contoh
Buat larik filter yang hanya akan mengembalikan elemen genap dari larik asli:
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)