NumPy - Penyiaran
Syarat broadcastingmengacu pada kemampuan NumPy untuk menangani array dengan bentuk berbeda selama operasi aritmatika. Operasi aritmatika pada array biasanya dilakukan pada elemen yang sesuai. Jika dua larik memiliki bentuk yang persis sama, maka operasi ini dilakukan dengan lancar.
Contoh 1
import numpy as np
a = np.array([1,2,3,4])
b = np.array([10,20,30,40])
c = a * b
print c
Outputnya adalah sebagai berikut -
[10 40 90 160]
Jika dimensi dua larik tidak sama, operasi elemen-ke-elemen tidak dimungkinkan. Namun, operasi pada array dengan bentuk yang tidak mirip masih dimungkinkan di NumPy, karena kemampuan penyiaran. Array yang lebih kecil adalahbroadcast ke ukuran larik yang lebih besar sehingga memiliki bentuk yang kompatibel.
Penyiaran dimungkinkan jika aturan berikut dipenuhi -
Array dengan yang lebih kecil ndim daripada yang lain diawali dengan '1' dalam bentuknya.
Ukuran di setiap dimensi bentuk keluaran adalah maksimum dari ukuran masukan dalam dimensi tersebut.
Sebuah masukan dapat digunakan dalam penghitungan, jika ukurannya dalam dimensi tertentu cocok dengan ukuran keluaran atau nilainya persis 1.
Jika masukan memiliki ukuran dimensi 1, entri data pertama dalam dimensi itu digunakan untuk semua perhitungan sepanjang dimensi itu.
Satu set array dikatakan broadcastable jika aturan di atas memberikan hasil yang valid dan salah satu dari yang berikut ini benar -
Array memiliki bentuk yang persis sama.
Array memiliki jumlah dimensi yang sama dan panjang setiap dimensi adalah panjang yang sama atau 1.
Larik yang memiliki dimensi terlalu sedikit dapat memiliki bentuknya ditambah dengan dimensi panjang 1, sehingga properti yang disebutkan di atas adalah benar.
Program berikut menunjukkan contoh penyiaran.
Contoh 2
import numpy as np
a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]])
b = np.array([1.0,2.0,3.0])
print 'First array:'
print a
print '\n'
print 'Second array:'
print b
print '\n'
print 'First Array + Second Array'
print a + b
Output dari program ini adalah sebagai berikut -
First array:
[[ 0. 0. 0.]
[ 10. 10. 10.]
[ 20. 20. 20.]
[ 30. 30. 30.]]
Second array:
[ 1. 2. 3.]
First Array + Second Array
[[ 1. 2. 3.]
[ 11. 12. 13.]
[ 21. 22. 23.]
[ 31. 32. 33.]]
Gambar berikut menunjukkan bagaimana array b disiarkan agar kompatibel dengan a.