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.
Apa itu broadcasting di NumPy?
Broadcasting adalah cara NumPy ngoperasiin array yang bentuknya beda tanpa harus nyamain ukurannya manual. NumPy otomatis nganggep array yang lebih kecil kayak diregangkan biar pas sama yang besar. Contohnya arr + 10 nambahin 10 ke tiap elemen. Prosesnya nggak beneran nyalin data, jadi tetap hemat memori dan lebih cepat daripada loop biasa.
Apa aturan broadcasting di NumPy?
NumPy bandingin bentuk dua array dari dimensi paling kanan ke kiri. Dua dimensi 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 yang bernilai 1 itu yang diregangkan biar cocok sama pasangannya.
Kenapa broadcasting-ku error operands could not be broadcast?
Error itu muncul karena bentuk dua array nggak bisa dicocokin menurut aturan broadcasting. Misalnya array (3, 4) dioperasiin sama (2,), dimensi terakhirnya 4 lawan 2, nggak sama dan nggak ada yang 1. Cek bentuk tiap array pakai atribut shape, lalu pastikan dimensi yang mau dicocokin sama atau salah satunya 1.
Apa beda broadcasting dan reshape?
Reshape ngubah bentuk satu array secara eksplisit, misalnya dari 12 elemen jadi 3 baris 4 kolom. Broadcasting terjadi otomatis waktu kamu operasiin dua array beda ukuran, tanpa kamu ubah bentuknya manual. Sering keduanya dipakai bareng, kamu reshape dulu biar dimensinya pas, baru NumPy broadcast pas operasi.
Apakah broadcasting bikin salinan array?
Nggak. Broadcasting cuma ngatur cara NumPy baca array yang kecil, seolah-olah diregangkan, tanpa beneran nyalin datanya ke memori. Ini yang bikin dia hemat memori dibanding kamu bikin array besar manual. Hasil operasinya baru jadi array baru, tapi proses nyocokin bentuknya sendiri nggak makan memori tambahan.
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
NumPy reshape: Ubah Bentuk Array (2026)
Fungsi reshape di NumPy ngatur ulang bentuk array tanpa ngubah datanya. Ini cara pakainya, arti angka -1, dan cara ngeflat array.
NumPy Array: Dasar-Dasar untuk Analis Data (2026)
NumPy array bikin hitungan data di Python jauh lebih cepat dari list biasa. Ini dasar bikin, slicing, dan operasi array buat analis.
Alternatif iterrows yang Lebih Cepat di Pandas
iterrows nyaman ditulis tapi lambat. Ini urutan alternatif iterrows di pandas dari yang tercepat, plus benchmark biar kamu tau kapan pakai yang mana.