NumPy Broadcasting: Operasi Array Beda Ukuran (2026)
TL;DR
Broadcasting di NumPy adalah cara NumPy ngoperasiin dua array beda ukuran dengan otomatis nyocokin bentuknya. Array yang lebih kecil diperlakukan seolah diregangkan biar cocok, tanpa beneran nyalin data, jadi hemat memori dan cepat. Aturannya, dua dimensi cocok kalau ukurannya sama atau salah satunya 1. Ini yang bikin operasi kayak arr + 10 jalan tanpa loop.
Broadcasting di NumPy adalah cara NumPy ngoperasiin dua array beda ukuran dengan otomatis nyocokin bentuknya.
Ini yang bikin kamu bisa nulis arr + 10 dan NumPy nambahin 10 ke tiap elemen, tanpa loop. Array kecilnya diperlakukan seolah diregangkan biar pas sama yang besar.
Artikel ini jelasin apa itu broadcasting, aturan bentuknya, dan contoh nyata pakai data harga. Ada code Python yang bisa langsung kamu jalanin.
Apa itu broadcasting di NumPy?
Broadcasting adalah mekanisme NumPy buat ngoperasiin array yang bentuknya beda tanpa nyamain ukurannya manual. NumPy nganggep array yang lebih kecil seolah diregangkan biar cocok sama yang besar. Prosesnya nggak beneran nyalin data, jadi hemat memori dan lebih cepat daripada loop.
Contoh paling sederhana, nambahin satu angka ke seluruh array:
import numpy as np
arr = np.array([10, 20, 30])
print(arr + 5)
# hasil: [15 25 35]
Angka 5 itu skalar, bentuknya beda jauh dari array 3 elemen. NumPy tetap ngerti maksudnya: tambahin 5 ke tiap elemen. Ini broadcasting paling dasar.
Kalau kamu belum kenal struktur dasarnya, baca dulu NumPy array untuk analis data biar paham bentuk dan dimensi.
Gimana aturan broadcasting?
NumPy bandingin bentuk dua array dari dimensi paling kanan ke kiri. Dua dimensi dianggap cocok kalau ukurannya sama, atau salah satunya bernilai 1. Kalau ada dimensi yang beda dan nggak ada yang 1, NumPy nolak dan ngasih error. Dimensi bernilai 1 itu yang diregangkan.
Contoh bentuk yang cocok:
| Array A | Array B | Hasil |
|---|---|---|
| (3, 4) | (4,) | Cocok, B diregangkan ke tiap baris |
| (3, 1) | (1, 4) | Cocok, jadi (3, 4) |
| (3, 4) | (2,) | Error, 4 lawan 2 |
Baris kedua menarik. Array (3, 1) dan (1, 4) dua-duanya punya dimensi bernilai 1, jadi keduanya diregangkan sampai ketemu bentuk (3, 4).
a = np.array([[1], [2], [3]]) # bentuk (3, 1)
b = np.array([10, 20, 30, 40]) # bentuk (4,)
print((a + b).shape)
# hasil: (3, 4)
Contoh broadcasting yang sering dipakai
Broadcasting kepakai tiap kali kamu operasiin array dengan skalar atau array yang lebih kecil. Ini beberapa pola umum. Menambah konstanta ke seluruh array, ngali tiap baris dengan vektor, atau normalisasi data pakai rata-rata kolom.
Contoh nambahin pajak 11% ke daftar harga:
harga = np.array([68000, 34000, 17000])
harga_final = harga * 1.11
print(harga_final)
# hasil: [75480. 37740. 18870.]
Contoh ngurangin tiap kolom dengan rata-ratanya, sering dipakai buat nyiapin data sebelum analisis:
data = np.array([[10, 200],
[20, 400],
[30, 600]])
rata = data.mean(axis=0) # bentuk (2,)
selisih = data - rata
print(selisih)
Di sini rata bentuknya (2,), sedangkan data bentuknya (3, 2). Broadcasting bikin rata-rata dikurangin ke tiap baris tanpa kamu tulis loop.
Contoh Kasus: hitung margin produk toko_berkah
Anggap toko_berkah punya data harga jual dan harga beli 4 produk dalam bentuk array NumPy. Kamu mau ngitung margin tiap produk sekaligus.
harga_jual = np.array([75000, 38000, 19000, 12000])
harga_beli = np.array([68000, 34000, 17000, 10000])
margin = harga_jual - harga_beli
margin_persen = margin / harga_beli * 100
print(margin_persen.round(1))
# hasil: [10.3 11.8 11.8 20. ]
Semua operasi jalan elemen per elemen tanpa loop. Dari hasilnya kelihatan produk keempat punya margin 20%, paling tinggi di antara empat produk itu.
Bayangin data kamu bukan 4 produk tapi 40 ribu baris transaksi. Broadcasting ngerjain semuanya dalam sekali operasi, jauh lebih cepat daripada loop Python satu per satu. Ini alasan analis data pindah dari list biasa ke NumPy.
Kalau kamu perlu ngatur bentuk array dulu sebelum operasi, baca NumPy reshape.
Kesalahan Umum Broadcasting
Beberapa hal yang sering bikin broadcasting error atau ngasih hasil aneh:
- Bentuk nggak cocok. Array (3, 4) dan (2,) nggak bisa di-broadcast. Cek dulu pakai
arr.shape. - Salah axis pas nyari rata-rata.
mean(axis=0)ngitung per kolom,axis=1per baris. Salah axis bikin bentuk pembaginya beda. - Nyangka broadcasting nyalin data. Broadcasting nggak bikin salinan, jadi hemat memori. Yang bikin array baru itu hasil operasinya.
- Lupa reshape. Kadang kamu perlu
reshape(-1, 1)dulu biar dimensinya pas buat di-broadcast.
Kalau muncul pesan operands could not be broadcast, langsung cek shape kedua array. 9 dari 10 kasus, ada dimensi yang beda dan nggak ada yang bernilai 1.
FAQ
Pertanyaan yang sering muncul soal broadcasting di NumPy.
Penutup
Broadcasting bikin NumPy ngoperasiin array beda ukuran tanpa loop dan tanpa nyalin data. Aturannya cukup satu: dua dimensi cocok kalau sama atau salah satunya 1.
Inget, kalau error, cek shape dua array kamu dulu. Itu sumber masalah paling sering.
Lanjut belajar cara ngatur bentuk array di NumPy reshape, dan baca aturan resminya di dokumentasi NumPy. Terus latihan sampai broadcasting jadi kebiasaan, bukan tebakan.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Uji Chi-Square: Konsep dan Contoh Praktis (2026)
Mau tau apakah metode bayar berhubungan sama tipe pelanggan? Uji chi-square jawabannya. Ini konsep, rumus, cara hitung di Python, plus contoh data toko nyata.
Korelasi Spearman: Kapan Dipakai vs Pearson
Korelasi Spearman kerja di peringkat, bukan nilai asli. Ini bedanya dengan Pearson, kapan pakai yang mana, dan cara hitungnya di Excel dan Python.
Korelasi Pearson: Cara Menghitung dan Membaca
Korelasi Pearson ngukur seberapa kuat dua angka bergerak bareng. Ini cara hitung dan baca nilainya dengan contoh dataset toko Indonesia.