Saya memiliki dua matriks
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
dan saya ingin mendapatkan produk elemen-bijaksana [[1*5,2*6], [3*7,4*8]]
,, setara
[[5,12], [21,32]]
saya telah mencoba
print(np.dot(a,b))
dan
print(a*b)
tapi keduanya memberikan hasil
[[19 22], [43 50]]
yang merupakan hasil kali matriks, bukan produk bijak. Bagaimana saya bisa mendapatkan produk elemen-bijaksana (alias produk Hadamard) menggunakan fungsi bawaan?
a
dan b
array numpy? Juga, dalam pertanyaan Anda di atas, Anda menggunakan x
dan y
untuk komputasi, bukan a
dan b
. Apakah itu hanya salah ketik?
@
perkalian matriks dengan larik numpy, yang berarti sama sekali tidak ada alasan yang baik untuk menggunakan matriks di atas larik.
a
dan b
daftar. Mereka akan bekerja di np.dot
; tapi tidak di a*b
. Jika Anda menggunakan np.array(a)
atau np.matrix(a)
, *
berfungsi tetapi dengan hasil yang berbeda.
a
danb
bukan tipe matriks NumPy? Dengan kelas ini,*
mengembalikan produk dalam, bukan elemen-bijaksana. Tetapi untukndarray
kelas biasa ,*
berarti produk yang bijak.