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 di Teknik Fisika, ITS (2009) dan master (2012)  yang mengabdikan hidupnya pada almamater yang sama, VibrasticLab TF-ITS. Saat ini sedang menempuh pendidikan Doktor di JAIST, Jepang

You may also like...

Leave a Reply

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

CAPTCHA Image

*