Pemfilteran Array NumPy
- Hal Sebelumnya Pengurutan Array NumPy
- Hal Berikutnya Acak NumPy
Penyaring array
Menimba beberapa elemen dari array yang ada dan menciptakan array baru disebut penyaring (filtering).
Pada NumPy, kami menggunakan daftar indeks boolean untuk menyaring array.
Daftar indeks boolean adalah daftar nilai boolean yang berkoordinasi dengan indeks di dalam array.
Jika nilai di indeks adalah True
, maka elemen akan disertakan di daftar penyaring yang disaring; jika nilai di indeks adalah False
, maka elemen akan dihapus dari daftar penyaring yang disaring.
Contoh
Membuat array dengan elemen di indeks 0 dan 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)
Pada contoh di atas akan kembalikan [61, 63, 65]
mengapa?
Karena penyaring baru hanya mengandung nilai yang ada di daftar penyaring array True
nilai, jadi dalam kasus ini, indeks adalah 0 dan 2, 4.
membuat daftar penyaring
Pada contoh di atas, kami membuat True
dan False
Nilai disingkat tetapi biasanya digunakan untuk membuat daftar penyaring berdasarkan kondisi.
Contoh
Buat sebuah array penapis yang hanya mengembalikan nilai yang lebih besar dari 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # Buat daftar kosong filter_arr = [] # Melintasi setiap elemen di arr for element in arr: # Jika elemen lebih besar dari 62, maka nilai diatur menjadi True, jika tidak maka False: jika element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Contoh
Buat sebuah array penapis, array yang hanya mengembalikan elemen genap dari array asli:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # Buat daftar kosong filter_arr = [] # Melintasi setiap elemen di arr for element in arr: # Jika elemen dapat dibagi dengan 2, atur nilai menjadi True, jika tidak atur nilai menjadi False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Buat penapis langsung dari array
Contoh di atas adalah tugas yang sangat umum di NumPy, NumPy menyediakan metode yang bagus untuk menyelesaikan masalah ini.
Kami dapat mengganti array langsung di dalam kondisi daripada variabel iterable, dan ini akan bekerja seperti yang diharapkan.
Contoh
Buat sebuah array penapis yang hanya mengembalikan nilai yang lebih besar dari 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)
Contoh
Buat sebuah array penapis, array yang hanya mengembalikan elemen genap dari array 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)
- Hal Sebelumnya Pengurutan Array NumPy
- Hal Berikutnya Acak NumPy