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:
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:
[[7 7 7]
[7 7 7]]
dtype b: float64- Baris 3 (
np.full((2, 3), 7)): array 2 × 3 dengan seluruh elemen bernilai 7; karena nilai isinya integer,dtypehasilnyaint64. - Baris 4 (
np.full((2, 2), 0.0)): nilai isi0.0berupa pecahan, sehinggadtypehasilnyafloat64— tipefill_valueikut 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:
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:
[[0 0]
[0 0]]
[[10 10]
[10 10]]
dtype mengikuti harga: int64- Baris 3-4 (
np.zeros_like(harga)): bentuk 2 × 2 dan tipeint64disalin dariharga; kita tidak perlu menuliskannya ulang. - Baris 5 (
np.full_like(harga, 10)): seluruh elemen diisi 10, tetap mengikuti template. - Baris 8 (
diskon.dtype):int64— sama dengan tipeharga, bukan tipe bawaanfloat64.
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):
import numpy as np
pola = np.array([1, 2])
print(np.tile(pola, 3))
print(np.tile(pola, (2, 1)))Output yang Dihasilkan:
[1 2 1 2 1 2]
[[1 2]
[1 2]]- Baris 4 (
np.tile(pola, 3)): pola[1 2]ditiga kali secara berurutan menjadi array 1-D enam elemen. - Baris 5 (
np.tile(pola, (2, 1))):repsberupa 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:
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:
[[15000. 20000. 12500.]
[17500. 9000. 22000.]
[ 0. 0. 0.]]- Baris 3 (
np.full((3, 3), 0.0)): tabel 3 × 3 bertipefloat64dengan seluruh sel bernilai0.0sebagai nilai bawaan. - Baris 4-5 (
tabel_harga[0, :] = ...): indeks[0, :]berarti seluruh kolom pada baris 0; penugasan menimpa nilai bawaan dengan data harga. - Baris 6 (
print(tabel_harga)): baris ketiga masih0.0— tanda bahwa data untuk baris tersebut belum diisi.
Ringkasan pemilih fungsi #
Tabel berikut membantu memilih fungsi pengisi nilai sesuai kebutuhan:
| Fungsi | Bentuk keluaran | Kapan dipakai |
|---|---|---|
np.full(shape, x) | sesuai shape, tipe mengikuti x | nilai konstanta yang sama untuk semua sel |
np.zeros(shape) | nol, float64 bawaan | nilai netral penjumlahan |
np.ones(shape) | satu, float64 bawaan | nilai netral perkalian |
np.zeros_like(a) | meniru shape dan dtype a | penampung hasil dengan template array |
np.ones_like(a) | meniru shape dan dtype a | penanda aktif dengan template array |
np.full_like(a, x) | meniru shape dan dtype a | nilai konstanta dengan template array |
np.tile(a, reps) | pengulangan a sesuai reps | pola periodik yang berulang |