Memahami Broadcasting pada NumPy

Broadcasting adalah salah satu konsep terpenting dalam NumPy. Setelah sebelumnya kita belajar tentang struktur data, indexing (view), indexing (copy), dan vektorisasi, tibalah saatnya kita mempelajari konsep kelima: Broadcasting. Secara sederhana, konsep broadcasting sama dengan istilah broadcasting di bidang lain. Misalnya pada aplikasi pesan melalui Whatsapp, broadcasting pada aplikasi tersebut berarti mengirim pesan pada semua akun yang ada di daftar kontak kita. Pada NumPy array, broadcasting juga berlaku demikan. Nilai (misal: array 1x2) yang dikalikan pada array vektor (4x1), maka setiap elemen vektor tersebut akan dikalikan dengan nilai tadi (array 1x2).

Operasi perkalian yang melibatkan konsep 'broadcasting': setiap elemen pada vektor kiri (4x1) dikalikan dengan array di tengah (1x2), hasilnya array sebelah kanan (4x2) [1]

Pada tulisan sebelumnya, vektorisasi pada Numpy, teknik yang digunakan adalah broadcasting yang paling sederhana. Ketika menambahkan matrik a dengan skalar '1', broadcasting digunakan untuk vektorisasi skalar '1' tersebut menjadi matrik yang seukuran dengan a. Untuk operasi perkalian perhatikan contoh d bawah ini berdasarkan gambar di atas.

In [26]: e = np.array([[0], [3], [6], [9]])                                     
In [27]: e * np.array(*[[1, 2]])                                                
Out[27]: 
array([[ 0,  0],
       [ 3,  6],
       [ 6, 12],
       [ 9, 18]])

Untuk operasi broadcasting, setidaknya harus ada kompatibilitas antar aksisnya, bisa kolomnya, bisa barisnya, atau skalar. Seperti perkalian matrik, jika kedua matrik tidak kompatibel, maka tidak bisa dikalikan. Jika tidak memenuhi kriteria tersebut akan menyebabkan error. Lebih jelasnya, ikuti screencast berikut ini.


Penutup

Tutorial singkat ini menjelaskan teknik broadcasting -- menyebar 'pesan' ke seluruh elemen matrik/vektor. Dengan teknik broadcasting ini, operasi yang melibatkan matrik dengan jumlah besar (misal ribuan aksis) bisa dilakukan dengan mudah. Broadcasting secara pintar akan menambah aksis bila diperlukan dan menampilkan error yang berkesesuaian, misal jika ukuran baris dan kolom tidak sama pada operasi perkalian.

Referensi

  1. C. R. Harris et al., “Array Programming with NumPy,” Nature, vol. 585, no. September, pp. 357–362, 2020.
Avatar

Bagus Tris Atmaja

Menyelesaikan sarjana (2009) dan magister (2012) di Teknik Fisika ITS. Gelar PhD diperoleh di bidang "Information Science" dari Japan Advanced Institute of Science and Technology (JAIST). Saat ini bekerja sebagai peneliti di Artificial Intelligence Research Center, AIST Tsukuba.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA Image

*