Dalam program nyata, kita sering membutuhkan array yang isinya terisi lebih dulu sebelum data aslinya datang: penampung hasil perhitungan, tabel yang akan diisi baris demi baris, atau matriks kumulatif yang dimulai dari nol. NumPy menyediakan tiga fungsi pembuat array tanpa perlu kita mengetikkan nilai satu per satu: np.zeros, np.ones, dan np.empty. Ketiganya menerima argumen yang sama — bentuk (shape) array — sehingga cara memakainya seragam.

Yang akan kita pelajari di bab ini:

  • Membuat array nol dan satu dengan np.zeros dan np.ones.
  • Mengatur tipe elemen dengan parameter dtype.
  • Perilaku np.empty yang berbeda dari ketiganya.

zeros dan ones: array bernilai tetap #

Fungsi np.zeros(shape) menghasilkan array berisi nol, sedangkan np.ones(shape) menghasilkan array berisi satu. Argumen shape ditulis sebagai tuple; untuk array satu dimensi boleh ditulis sebagai angka tunggal:

python
import numpy as np

z = np.zeros((2, 3))
o = np.ones(4, dtype=np.int64)
print(z)
print(o)
print("dtype z:", z.dtype)
print("dtype o:", o.dtype)

Output yang Dihasilkan:

text
[[0. 0. 0.]
 [0. 0. 0.]]
[1 1 1 1]
dtype z: float64
dtype o: int64
  1. Baris 3 (np.zeros((2, 3))): tuple (2, 3) menentukan 2 baris × 3 kolom, semuanya bernilai 0.0.
  2. Baris 4 (np.ones(4, dtype=np.int64)): angka tunggal 4 berarti array 1-D berisi 4 elemen; parameter dtype memaksa tipe integer, sehingga nilainya 1 (bukan 1.).
  3. Baris 7-8 (z.dtype dan o.dtype): tanpa parameter dtype, np.zeros menghasilkan float64; dengan parameter, np.ones mengikuti tipe yang kita minta.

Perhatikan tanda titik pada 0. — itu tanda nilai disimpan sebagai float. Jika kita membutuhkan nol integer, cukup tambahkan dtype=np.int64.

empty: array tanpa inisialisasi #

Fungsi np.empty(shape) hanya mengalokasikan memori tanpa mengisi nilai. Isi elemennya adalah sisa data apa pun yang kebetulan berada di lokasi memori tersebut, sehingga nilainya tidak dapat diprediksi dan bisa berbeda antar eksekusi. Karena itu, blok berikut sengaja hanya mencetak properti yang pasti:

python
import numpy as np

e = np.empty((2, 2))
print("shape:", e.shape)
print("dtype:", e.dtype)

Output yang Dihasilkan:

text
shape: (2, 2)
dtype: float64
  1. Baris 3 (np.empty((2, 2))): NumPy meminta sistem operasi ruang memori 2 × 2 × 8 byte tanpa menulis nilai apa pun ke dalamnya.
  2. Baris 4-5 (e.shape dan e.dtype): hanya bentuk dan tipe yang dijamin; isi elemen tidak dijamin apa pun.

Keunggulan np.empty hanya kecepatan: tanpa pengisian nilai, alokasinya sedikit lebih cepat daripada np.zeros pada array besar. Selama seluruh elemen akan ditimpa sebelum dipakai, np.empty adalah pilihan yang sah.

Memilih di antara ketiganya #

Tabel berikut merangkum fungsi dan penggunaannya:

FungsiArgumenIsi elemenKapan dipakai
np.zeros(shape)tuple bentuk0.0 (atau nol sesuai dtype)penampung kumulatif, nilai netral penjumlahan
np.ones(shape)tuple bentuk1 (atau satu sesuai dtype)nilai awal perkalian, penanda aktif
np.empty(shape)tuple bentuktidak dijaminbuffer besar yang seluruhnya akan diisi ulang