Materi
Array punya method ringkasan: .sum() menjumlahkan, .mean() menghitung rata-rata, .max() dan .min() mencari nilai terbesar dan terkecil, .argmax() mengembalikan indeks tempat nilai terbesar berada, dan .argmin() indeks nilai terkecil. Pasangan max dan argmax menjawab dua pertanyaan yang berbeda: berapa nilainya, dan di posisi mana nilai itu.
import numpy as np
harian = np.array([120000, 95000, 180000])
print(harian.mean()) # 131666.66666666666
print(harian.max()) # 180000
print(harian.argmax()) # 2Di pekerjaan harian, .mean() menjawab berapa rata-rata omzet per hari dan .argmax() menemukan hari atau cabang puncak tanpa memeriksa daftar satu per satu.
Contoh di luar latihan: pemakaian listrik enam bulan tercatat 412, 388, 455, 501, 470, dan 430 kWh. Ringkasannya .mean() memberi 442.67, .max() memberi 501, dan .argmax() memberi 3 — bulan keempat, karena indeks dimulai dari nol.
Perbandingan pada array menghasilkan array True dan False; array itu dapat dipakai untuk mengambil elemen yang memenuhi syarat. Pola yang sama dipakai lagi pada pandas di pelajaran 9.
di_atas = harian[harian > 100000]
print(di_atas) # [120000 180000]
print(di_atas.size) # 2Kesalahan umum: memperlakukan hasil .argmax() sebagai nilai. Angka 3 pada contoh listrik di atas bukan 501 kWh melainkan posisinya, dan laporan menjadi salah tanpa satu pun pesan error. Kesalahan kedua: menjalankan .mean() pada array kosong, yang menjawab nan disertai RuntimeWarning: Mean of empty slice.
Array dua dimensi menyimpan tabel angka: np.array([[70, 85, 90], [60, 75, 80]]) berisi nilai dua siswa pada tiga ujian, bentuknya (2, 3). Tanpa argumen, .sum() dan .mean() meringkas seluruh isi menjadi satu angka. Argumen axis memilih arah: axis=0 meringkas ke bawah sehingga hasilnya satu angka per kolom — rata-rata tiap ujian, [65. 80. 85.] — sedangkan axis=1 meringkas ke samping sehingga hasilnya satu angka per baris, yaitu rata-rata tiap siswa.