Halaman ini menutup course. Sepanjang bab-bab sebelumnya kita menemui istilah teknis yang hampir selalu berbahasa Inggris, dan saat membaca dokumentasi atau buku lain, istilah-istilah itu akan muncul lagi tanpa penjelasan ulang. Glosarium berikut merangkum istilah yang paling sering dipakai, lengkap dengan arti singkat dan petunjuk bab yang membahasnya secara mendalam.

Simpan halaman ini sebagai rujukan cepat. Untuk daftar istilah resmi yang lebih lengkap (berbahasa Inggris), halaman glossary dokumentasi tersedia di situs NumPy.

Istilah Inti Course #

IstilahArti singkatDibahas pada chapter
ndarrayStruktur data inti NumPy: array berdimensi-n dengan seluruh elemen bertipe samaKonsep ndarray
dtypeTipe data elemen array, misalnya int64 atau float64Atribut dtype
shapeUkuran array per dimensi; (2, 3) berarti 2 baris dan 3 kolomAtribut shape
scalarNilai tunggal; dalam NumPy berupa array 0-dimensi atau objek seperti np.float64(27.5)Broadcasting dengan Scalar
axisNomor dimensi tempat operasi bekerja; axis=0 melintasi baris, axis=1 melintasi kolomOperasi Berdasarkan Axis
broadcastingAturan penyebaran bentuk agar array dengan shape berbeda dapat dioperasikan tanpa salinanAturan Broadcasting
ufuncFungsi universal yang beroperasi per elemen, misalnya np.exp dan np.addFungsi Universal (ufunc)
vectorizationMenuliskan operasi atas array secara keseluruhan tanpa loop Python eksplisitPengenalan Vectorization
viewArray baru yang berbagi buffer memori dengan array aslinyaView vs Copy
copyArray baru dengan buffer memori sendiri; perubahan pada salinan tidak menyentuh aslinyaView vs Copy
strideJumlah byte yang dilompati untuk berpindah satu langkah di tiap dimensiStrides dan Memory Access
maskArray boolean yang menandai elemen mana yang diambil atau ditutupMasking dan Conditional Selection
NaN“Not a number”; penanda nilai numerik yang hilang atau tidak sahNaN dan Infinity
fancy indexingMengindeks dengan array atau list indeks; hasilnya selalu array baruFancy Indexing
flatten / ravelMengubah array menjadi satu dimensi; flatten selalu menyalin, ravel dapat mengembalikan viewflatten dan ravel
reduceMenekan satu axis menjadi satu nilai dengan operasi berulang, misalnya np.add.reduceufunc Lanjutan
aggregateFungsi yang merangkum banyak elemen menjadi satu angka, misalnya sum dan meansum dan prod
structured arrayArray yang setiap elemennya terdiri atas beberapa field bertipe berbedaStructured Array
memmapArray yang menyimpan datanya di file dan memuat bagian yang dibutuhkan sesuai permintaanMemory-mapped Array
RNG / GeneratorPembangkit bilangan acak modern berbasis objek Generatordefault_rng dan Generator
seedNilai awal yang menentukan urutan angka acak sehingga hasil dapat direproduksiReproducibility dan Random Seed

Istilah dalam Kode #

Empat istilah pertama — shape, axis, scalar, dan broadcasting — paling sering membingungkan pemula karena abstrak. Blok berikut menampilkannya dalam satu layar:

python
import numpy as np

a = np.arange(6).reshape(2, 3)
print("sum(axis=0):", a.sum(axis=0))
print("sum(axis=1):", a.sum(axis=1))
print(a + 10)

Output yang Dihasilkan:

text
sum(axis=0): [3 5 7]
sum(axis=1): [ 3 12]
[[10 11 12]
 [13 14 15]]

Array ber-shape (2, 3) diringkas dua arah: axis=0 menjumlahkan tiap kolom sehingga tersisa satu nilai per kolom, axis=1 menjumlahkan tiap baris. Baris terakhir memperlihatkan broadcasting dengan scalar 10: satu angka disebarkan ke seluruh elemen tanpa loop.

Pasangan view dan copy paling mudah dipahami lewat eksperimen mutasi:

python
import numpy as np

a = np.arange(4)
v = a[1:3]      # slice -> view
c = a[[1, 2]]   # fancy indexing -> copy
print("v.base is a:", v.base is a, "| c.base is a:", c.base is a)
v[0] = 99
print("a setelah mutasi view:", a)

Output yang Dihasilkan:

text
v.base is a: True | c.base is a: False
a setelah mutasi view: [ 0 99  2  3]

Mari kita bedah baris demi baris:

  1. Baris 3 (v = a[1:3]): slicing mengembalikan view; atribut v.base menunjuk ke a, bukti kedua array berbagi buffer yang sama.
  2. Baris 4 (c = a[[1, 2]]): fancy indexing mengembalikan copy dengan buffer sendiri, sehingga c.base is a bernilai False.
  3. Baris 5 (print(...)): kedua status base dicetak sebagai bukti statis yang bisa diulang siapa pun.
  4. Baris 6 (v[0] = 99): mengubah view turut mengubah a — posisi ke-1 berubah dari 1 menjadi 99, persis perilaku yang diwaspadai pada bab View vs Copy.

Terakhir, istilah NaN, mask, dan nan-aware aggregation sering muncul bersama saat bekerja dengan data yang tidak sempurna:

python
import numpy as np

suhu = np.array([27.5, np.nan, 30.0])
mask = np.isnan(suhu)
print("mask :", mask)
print("nanmean:", np.nanmean(suhu))
print("suhu[~mask]:", suhu[~mask])

Output yang Dihasilkan:

text
mask : [False  True False]
nanmean: 28.75
suhu[~mask]: [27.5 30. ]

np.isnan adalah ufunc yang menghasilkan mask boolean; np.nanmean menghitung rata-rata dengan melewati NaN; dan suhu[~mask] memakai mask terbalik untuk menyaring elemen yang valid. Tiga pola ini adalah inti bab NaN dan Infinity, Masking dan Conditional Selection, dan NaN-aware Aggregation.

Dengan glosarium ini, setiap istilah yang muncul di dokumentasi, buku, atau tutorial kini punya tempat kembali: arti singkatnya di tabel, dan penjelasan penuhnya pada chapter yang dirujuk.