Saring Array NumPy

penapisan array

mengambil beberapa elemen dari array yang ada dan membuat array baru disebut penapisan (filtering).

di NumPy, kami menggunakan daftar indeks boolean untuk menyaring array.

daftar indeks boolean adalah daftar nilai boolean yang sejalan dengan indeks di dalam array.

jika nilai di indeks adalah Truejika elemen itu termasuk dalam array yang disaring; jika nilai di indeks adalah Falsejika elemen itu akan dihapus dari array yang disaring.

Contoh

buat 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

contoh di atas akan kembalikan [61, 63, 65]mengapa?

karena penapisan baru hanya mengandung nilai penapisan array True nilai, jadi dalam kasus ini, indeks adalah 0 dan 2, 4.

membuat array penapisan

dalam contoh di atas, kami membuat True dan False nilai dihardcoding, tetapi penggunaan biasanya adalah untuk membuat array penapisan berdasarkan kondisi.

Contoh

Buat satu array penapis yang hanya mengembalikan nilai yang lebih besar dari 62:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
# Buat satu daftar kosong
filter_arr = []
# Lengkapkan setiap elemen di arr
for element in arr:
  # Jika elemen lebih besar daripada 62, nilai diatur ke True, jika bukan False:
  jika elemen > 62:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Jalankan Contoh

Contoh

Buat satu array penapis, array ini hanya mengembalikan elemen genap dari array asli:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
# Buat satu daftar kosong
filter_arr = []
# Lengkapkan 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 menggantikan array langsung di dalam kondisi daripada variabel iterable, dan ia akan bekerja seperti yang diharapkan.

Contoh

Buat satu 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 satu array penapis, array ini 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