Pemfilteran Array 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)

Jalankan Contoh

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)

Jalankan Contoh

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)

Jalankan Contoh

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)

Jalankan Contoh

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)

Jalankan Contoh