Setiap pekerjaan NumPy dimulai dari langkah yang sama: mengubah data yang kita miliki — hasil hitung kasir, catatan stok gudang, pengukuran suhu — menjadi array. Fungsi paling dasar untuk langkah ini adalah np.array(). Meskipun bab-bab lain memperkenalkan pembuat array yang lebih khusus, np.array() tetap menjadi pintu masuk utama karena paling mirip dengan cara Python menyimpan data sehari-hari.

Bab ini berfokus pada tiga keterampilan dasar:

  • Membuat array dari list dan nested list dengan np.array().
  • Menentukan dtype secara eksplisit agar tipe data tidak ditebak oleh NumPy.
  • Memeriksa properti dasar array sebelum dipakai dihitung.

Membuat array dari data yang ada #

Fungsi np.array() menerima satu argumen berupa koleksi Python (umumnya list) dan mengembalikan ndarray baru yang berisi salinan data tersebut. Mari kita lihat bentuk paling mendasar:

python
import numpy as np

harga = np.array([15000, 20000, 12500])
print(harga)
print("dtype:", harga.dtype)

Output yang Dihasilkan:

text
[15000 20000 12500]
dtype: int64
  1. Baris 3 (np.array([15000, 20000, 12500])): NumPy membaca list integer, mengalokasikan buffer int64, lalu menyalin nilainya satu per satu.
  2. Baris 4 (print(harga)): elemen dicetak dipisah spasi tanpa koma, tanda bahwa harga adalah ndarray.
  3. Baris 5 (harga.dtype): karena semua elemen berupa integer, NumPy memilih int64 sebagai tipe yang paling tepat.

Bila argumennya berupa nested list (list di dalam list), hasilnya adalah array dua dimensi. NumPy membaca nested list baris demi baris:

python
import numpy as np

tabel = np.array([[1, 2, 3], [4, 5, 6]])
print(tabel)
print("shape :", tabel.shape)
print("ndim  :", tabel.ndim)
print("size  :", tabel.size)

Output yang Dihasilkan:

text
[[1 2 3]
 [4 5 6]]
shape : (2, 3)
ndim  : 2
size  : 6

Mari kita periksa arti setiap properti yang dicetak:

  1. Baris 3 (np.array([[1, 2, 3], [4, 5, 6]])): list pertama menjadi baris pertama, list kedua menjadi baris kedua.
  2. Baris 6 (tabel.shape): tuple (2, 3) berarti 2 baris × 3 kolom.
  3. Baris 7 (tabel.ndim): jumlah axis; nested list satu tingkat menghasilkan array 2 dimensi.
  4. Baris 8 (tabel.size): total elemen, yaitu 2 × 3 = 6.

Menentukan dtype secara eksplisit #

Secara bawaan, NumPy menebak tipe data dari isi list. Tebakan tersebut biasanya tepat, tetapi ada situasi ketika kita perlu memutuskan sendiri: ingin menghemat memori, atau ingin menjaga presisi tertentu. Untuk itu np.array() menerima parameter dtype:

python
import numpy as np

suhu = np.array([27.5, 28.0, 26.5], dtype=np.float32)
print(suhu)
print("dtype:", suhu.dtype)
print("nbytes:", suhu.nbytes)

suhu64 = np.array([27.5, 28.0, 26.5])
print("nbytes float64:", suhu64.nbytes)

Output yang Dihasilkan:

text
[27.5 28.  26.5]
dtype: float32
nbytes: 12
nbytes float64: 24
  1. Baris 3 (dtype=np.float32): NumPy dipaksa memakai float 32-bit, sehingga tiap elemen hanya menempati 4 byte.
  2. Baris 6 (suhu.nbytes): 3 elemen × 4 byte = 12 byte — separuh dari versi float64.
  3. Baris 8-9 (tanpa dtype): NumPy memilih float64 (float 64-bit) sebagai tipe bawaan bilangan pecahan, sehingga kebutuhan memorinya menjadi 24 byte.

Perhatikan representasi 28.0 yang dicetak sebagai 28. — cara NumPy merampingkan tampilan angka pecahan. Nilainya tetap sama.

Ringkasan dtype yang sering dipakai #

Tabel berikut memetakan beberapa dtype bawaan yang paling sering kita temui di course ini:

dtypeIsi yang disimpanUkuran per elemenContoh kebutuhan
np.int64bilangan bulat8 byteharga, stok, jumlah item
np.float64bilangan pecahan (bawaan)8 bytehasil pembagian, statistik
np.float32bilangan pecahan ringkas4 bytedata sensor, data besar
np.int8bilangan bulat -128 s.d. 1271 bytepiksel, data hemat memori