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:
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:
[ True False True True False]
[False False True False False]
[ True True False True True]
[False True False False True]- Baris 4 (
nilai >= 75): setiap elemen dibandingkan dengan 75; posisi yang memenuhi syarat bernilaiTrue. Array boolean seperti ini adalah bahan utama filtering pada Chapter Boolean Indexing. - Baris 5 (
nilai == 90): tanda==membandingkan isi — berbeda dari=yang berarti penugasan. Hanya posisi bernilai 90 yangTrue. - Baris 6 (
nilai != 90):!=adalah kebalikan dari==, sehingga polanya juga terbalik. - Baris 7 (
nilai < 75): siswa dengan nilai di bawah KKM terlihat langsung pada posisiTrue.
Tabel berikut merangkum keenam operator perbandingan; semuanya menghasilkan array bertipe bool:
| Operator | Arti | Contoh |
|---|---|---|
== | sama dengan | nilai == 90 |
!= | tidak sama dengan | nilai != 90 |
< | lebih kecil dari | nilai < 75 |
> | lebih besar dari | nilai > 75 |
<= | lebih kecil atau sama dengan | nilai <= 75 |
>= | lebih besar atau sama dengan | nilai >= 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:
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:
[False True False]
[ True False False]
[False True True]- Baris 5 (
maret == april):Truehanya muncul pada posisi yang nilainya persis sama — di sini produk kedua dengan penjualan 95. - Baris 6 (
maret > april):Truemuncul ketika penjualan Maret lebih tinggi daripada April — hanya produk pertama (120 > 110) yang memenuhi. - Baris 7 (
maret <= april):Truepada produk kedua (95 <= 95) dan ketiga (140 <= 150);<=menghitungTruejuga 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:
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:
[ True True True]
True
False
False- Baris 5 (
a == b): hasilnya array tiga boolean, bukan satu jawaban tunggal. - Baris 6 (
np.array_equal(a, b)): fungsi ini membandingkan bentuk dan seluruh elemen, lalu mengembalikan satubool:Truekarena kedua array identik. - Baris 8 (
np.array_equal(a, c)): satu elemen saja yang berbeda sudah cukup membuat hasilnyaFalse. - Baris 9: bentuk yang berbeda langsung bernilai
Falsetanpa error —np.array_equaltidak menuntut bentuk sama lebih dahulu.