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.zerosdannp.ones. - Mengatur tipe elemen dengan parameter
dtype. - Perilaku
np.emptyyang 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:
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:
[[0. 0. 0.]
[0. 0. 0.]]
[1 1 1 1]
dtype z: float64
dtype o: int64- Baris 3 (
np.zeros((2, 3))): tuple(2, 3)menentukan 2 baris × 3 kolom, semuanya bernilai0.0. - Baris 4 (
np.ones(4, dtype=np.int64)): angka tunggal4berarti array 1-D berisi 4 elemen; parameterdtypememaksa tipe integer, sehingga nilainya1(bukan1.). - Baris 7-8 (
z.dtypedano.dtype): tanpa parameterdtype,np.zerosmenghasilkanfloat64; dengan parameter,np.onesmengikuti 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:
import numpy as np
e = np.empty((2, 2))
print("shape:", e.shape)
print("dtype:", e.dtype)Output yang Dihasilkan:
shape: (2, 2)
dtype: float64- Baris 3 (
np.empty((2, 2))): NumPy meminta sistem operasi ruang memori 2 × 2 × 8 byte tanpa menulis nilai apa pun ke dalamnya. - Baris 4-5 (
e.shapedane.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:
| Fungsi | Argumen | Isi elemen | Kapan dipakai |
|---|---|---|---|
np.zeros(shape) | tuple bentuk | 0.0 (atau nol sesuai dtype) | penampung kumulatif, nilai netral penjumlahan |
np.ones(shape) | tuple bentuk | 1 (atau satu sesuai dtype) | nilai awal perkalian, penanda aktif |
np.empty(shape) | tuple bentuk | tidak dijamin | buffer besar yang seluruhnya akan diisi ulang |