zeros dan ones hanya menghasilkan nilai nol dan satu. Sering kali nilai awal yang kita butuhkan adalah angka lain: diskon 10 untuk seluruh produk, tarif tetap 5000, atau penanda -1 yang berarti “belum dihitung”. Bab ini menutup section dasar array dengan keluarga fungsi pengisi nilai konstanta — np.full beserta varian _like — plus np.tile untuk pola yang berulang, lalu menutupnya dengan praktik inisialisasi tabel harga.

full: satu nilai untuk seluruh array #

Fungsi np.full(shape, fill_value) mengalokasikan array dengan bentuk tertentu lalu mengisinya dengan satu nilai yang sama:

python
import numpy as np

a = np.full((2, 3), 7)
b = np.full((2, 2), 0.0)
print(a)
print("dtype b:", b.dtype)

Output yang Dihasilkan:

text
[[7 7 7]
 [7 7 7]]
dtype b: float64
  1. Baris 3 (np.full((2, 3), 7)): array 2 × 3 dengan seluruh elemen bernilai 7; karena nilai isinya integer, dtype hasilnya int64.
  2. Baris 4 (np.full((2, 2), 0.0)): nilai isi 0.0 berupa pecahan, sehingga dtype hasilnya float64 — tipe fill_value ikut menentukan tipe array.

Fungsi ini menghilangkan langkah tambahan yang sering ditulis pemula: membuat array nol terlebih dahulu, lalu mengganti seluruh elemennya satu per satu. Satu panggilan np.full langsung menghasilkan array final, dan barisnya lebih ringkas daripada kombinasi pembuatan dan penugasan.

Keluarga _like: mengikuti template array yang ada #

Sering kali kita ingin array baru yang bentuk dan tipenya persis sama dengan array lain. Fungsi np.zeros_like, np.ones_like, dan np.full_like menerima array template dan menirunya:

python
import numpy as np

harga = np.array([[15000, 20000], [12500, 17500]])
diskon = np.zeros_like(harga)
persen = np.full_like(harga, 10)
print(diskon)
print(persen)
print("dtype mengikuti harga:", diskon.dtype)

Output yang Dihasilkan:

text
[[0 0]
 [0 0]]
[[10 10]
 [10 10]]
dtype mengikuti harga: int64
  1. Baris 3-4 (np.zeros_like(harga)): bentuk 2 × 2 dan tipe int64 disalin dari harga; kita tidak perlu menuliskannya ulang.
  2. Baris 5 (np.full_like(harga, 10)): seluruh elemen diisi 10, tetap mengikuti template.
  3. Baris 8 (diskon.dtype): int64 — sama dengan tipe harga, bukan tipe bawaan float64.

Jika kita memang ingin mengubah tipe, fungsi _like tetap menerima parameter dtype yang menimpa tipe template.

tile: mengulang pola #

Fungsi np.tile(array, reps) menyusun salinan berulang dari sebuah array. Argumen reps berupa angka (pengulangan sepanjang satu axis) atau tuple (pengulangan per axis):

python
import numpy as np

pola = np.array([1, 2])
print(np.tile(pola, 3))
print(np.tile(pola, (2, 1)))

Output yang Dihasilkan:

text
[1 2 1 2 1 2]
[[1 2]
 [1 2]]
  1. Baris 4 (np.tile(pola, 3)): pola [1 2] ditiga kali secara berurutan menjadi array 1-D enam elemen.
  2. Baris 5 (np.tile(pola, (2, 1))): reps berupa tuple (2, 1) — dua kali pada axis 0 (tambah baris), satu kali pada axis 1 (tanpa pengulangan kolom) — sehingga hasilnya matriks 2 × 2.

Praktik: inisialisasi tabel harga #

Pola yang umum di lapangan: siapkan tabel dengan nilai bawaan, lalu isi baris yang datanya telah tersedia. np.full menyiapkan nilai bawaan 0.0, dan penugasan per baris mengisi datanya:

python
import numpy as np

tabel_harga = np.full((3, 3), 0.0)
tabel_harga[0, :] = [15000.0, 20000.0, 12500.0]
tabel_harga[1, :] = [17500.0, 9000.0, 22000.0]
print(tabel_harga)

Output yang Dihasilkan:

text
[[15000. 20000. 12500.]
 [17500.  9000. 22000.]
 [    0.     0.     0.]]
  1. Baris 3 (np.full((3, 3), 0.0)): tabel 3 × 3 bertipe float64 dengan seluruh sel bernilai 0.0 sebagai nilai bawaan.
  2. Baris 4-5 (tabel_harga[0, :] = ...): indeks [0, :] berarti seluruh kolom pada baris 0; penugasan menimpa nilai bawaan dengan data harga.
  3. Baris 6 (print(tabel_harga)): baris ketiga masih 0.0 — tanda bahwa data untuk baris tersebut belum diisi.

Ringkasan pemilih fungsi #

Tabel berikut membantu memilih fungsi pengisi nilai sesuai kebutuhan:

FungsiBentuk keluaranKapan dipakai
np.full(shape, x)sesuai shape, tipe mengikuti xnilai konstanta yang sama untuk semua sel
np.zeros(shape)nol, float64 bawaannilai netral penjumlahan
np.ones(shape)satu, float64 bawaannilai netral perkalian
np.zeros_like(a)meniru shape dan dtype apenampung hasil dengan template array
np.ones_like(a)meniru shape dan dtype apenanda aktif dengan template array
np.full_like(a, x)meniru shape dan dtype anilai konstanta dengan template array
np.tile(a, reps)pengulangan a sesuai repspola periodik yang berulang