Pertanyaan analisis data hampir selalu berbentuk perbandingan: siswa mana yang nilainya mencapai KKM 75, produk mana yang penjualannya turun, transaksi mana yang nominalnya di atas rata-rata. Menjawabnya satu per satu dengan if di dalam perulangan itu lambat dan panjang. NumPy menjalankan keenam operator perbandingan pada seluruh elemen array sekaligus, dan hasilnya berupa array boolean — sering disebut mask.

Kita akan menelusuri tiga bentuk perbandingan:

  • Array dengan satu angka, misalnya nilai >= 75.
  • Array dengan array berbentuk sama, elemen pada posisi yang sama dibandingkan.
  • Array secara keseluruhan dengan np.array_equal, yang menghasilkan satu nilai boolean.

Membandingkan array dengan satu angka #

Ketika satu sisi perbandingan adalah angka tunggal, NumPy membandingkan angka itu dengan setiap elemen array. Hasilnya array bool dengan panjang yang sama:

python
import numpy as np

nilai = np.array([80, 65, 90, 75, 60])
print(nilai >= 75)
print(nilai == 90)
print(nilai != 90)
print(nilai < 75)

Output yang Dihasilkan:

text
[ True False  True  True False]
[False False  True False False]
[ True  True False  True  True]
[False  True False False  True]
  1. Baris 4 (nilai >= 75): setiap elemen dibandingkan dengan 75; posisi yang memenuhi syarat bernilai True. Array boolean seperti ini adalah bahan utama filtering pada Chapter Boolean Indexing.
  2. Baris 5 (nilai == 90): tanda == membandingkan isi — berbeda dari = yang berarti penugasan. Hanya posisi bernilai 90 yang True.
  3. Baris 6 (nilai != 90): != adalah kebalikan dari ==, sehingga polanya juga terbalik.
  4. Baris 7 (nilai < 75): siswa dengan nilai di bawah KKM terlihat langsung pada posisi True.

Tabel berikut merangkum keenam operator perbandingan; semuanya menghasilkan array bertipe bool:

OperatorArtiContoh
==sama dengannilai == 90
!=tidak sama dengannilai != 90
<lebih kecil darinilai < 75
>lebih besar darinilai > 75
<=lebih kecil atau sama dengannilai <= 75
>=lebih besar atau sama dengannilai >= 75

Membandingkan dua array berbentuk sama #

Kedua sisi perbandingan boleh berupa array. NumPy membandingkan pasangan elemen pada posisi yang sama — persis seperti pola operasi aritmetika pada Chapter Operasi Aritmetika:

python
import numpy as np

maret = np.array([120, 95, 140])
april = np.array([110, 95, 150])
print(maret == april)
print(maret > april)
print(maret <= april)

Output yang Dihasilkan:

text
[False  True False]
[ True False False]
[False  True  True]
  1. Baris 5 (maret == april): True hanya muncul pada posisi yang nilainya persis sama — di sini produk kedua dengan penjualan 95.
  2. Baris 6 (maret > april): True muncul ketika penjualan Maret lebih tinggi daripada April — hanya produk pertama (120 > 110) yang memenuhi.
  3. Baris 7 (maret <= april): True pada produk kedua (95 <= 95) dan ketiga (140 <= 150); <= menghitung True juga untuk posisi yang nilainya sama.

Membandingkan array secara keseluruhan dengan array_equal #

Ada perbedaan penting antara “elemen mana yang sama” dan “apakah kedua array sama seluruhnya”. Operator == menjawab pertanyaan pertama per elemen; fungsi np.array_equal menjawab pertanyaan kedua dengan satu nilai boolean:

python
import numpy as np

a = np.array([110, 95, 150])
b = np.array([110, 95, 150])
print(a == b)
print(np.array_equal(a, b))
c = np.array([110, 95, 151])
print(np.array_equal(a, c))
print(np.array_equal(a, np.array([110, 95])))

Output yang Dihasilkan:

text
[ True  True  True]
True
False
False
  1. Baris 5 (a == b): hasilnya array tiga boolean, bukan satu jawaban tunggal.
  2. Baris 6 (np.array_equal(a, b)): fungsi ini membandingkan bentuk dan seluruh elemen, lalu mengembalikan satu bool: True karena kedua array identik.
  3. Baris 8 (np.array_equal(a, c)): satu elemen saja yang berbeda sudah cukup membuat hasilnya False.
  4. Baris 9: bentuk yang berbeda langsung bernilai False tanpa error — np.array_equal tidak menuntut bentuk sama lebih dahulu.