Vektorisasi pada NumPy

Jika array (larik) adalah sekumpulan elemen, maka vektorisasi adalah operasi pada seluruh array tersebut, bukan operasi pada elemen individu dalam array tersebut. Ilustrasi sederhana bisa ditunjukkan pada gambar di bawah. Array di tengah beroperasi pada keseluruhan nilai pada array di sebelah kiri. Hasinya adalah array di sebelah kanan. Meski sederhana, konsep vektorisasi pada NumPy ini sangat berguna dan menjadi standar penting pemrograman array.

Ilustrasi vektorisasi pada NumPy. Setial elemen ditambahakan dengan elemen lain secara keseluruhan bersamaan (inilah yang disebut dengak vektorisasi, bandingkan dengan penggunaan 'loop'). [1]

Untuk memahami vektorisasi pda NumPy, ikuti screencast di bawah ini yang mengikuti operasi penjumlahan matrik pada gambar di atas.



Menghindari loop dan menggunakan vektor

Salah satu tujuan vektorisasi adalah untuk menghindari penggunaan loop. Penggunaan loop sangat mudah baik pada teori maupun implementasi. Namun loop rakus sumber daya. Sebaliknya, vektorisasi sangat menghemat sumberdaya komputasi.

c = []
for i in a:
    b = i ** 2 
    c.append(b) 
c = np.array(c)

Bandingkan dengan cara berikut:

d = a ** 2

Hasilnya sama, namun cara kedua sangat jauh lebih cepat dan fleksibel. Ini fungsi terpenting vektorisasi.

 

Penutup

Artikel sangat singkat ini mengenalkan konsep vektorisasi, salah satu hal terpenting pada pemrograman array dengan NumPy. Meski terkesan remeh, pemahaman konsep vektorisasi (operasi keseluruhan elemen array secara simultan) akan sangat bermanfaat. Pesan yang ingin disampaikan lewat tulisan ini adalah, hindari sebisa mungkin penggunaan loop pada pemrograman array dengan vektorisasi. Itu saja!

 

Bersambung ke artikel selanjutnya: broadcasting!

Referensi:

  1. C. R. Harris et al., “Array Programming with NumPy,” Nature, vol. 585, no. September, pp. 357–362, 2020.
  2. https://www.oreilly.com/library/view/python-for-data/9781449323592/ch04.html
  3. https://realpython.com/numpy-array-programming/
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

*