Ich habe zwei Matrizen
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
und ich möchte das elementweise Produkt [[1*5,2*6], [3*7,4*8]]
gleich bekommen
[[5,12], [21,32]]
Ich habe versucht
print(np.dot(a,b))
und
print(a*b)
aber beide geben das Ergebnis
[[19 22], [43 50]]
Das ist das Matrixprodukt, nicht das elementweise Produkt. Wie kann ich das elementweise Produkt (auch bekannt als Hadamard-Produkt) mithilfe integrierter Funktionen erhalten?
a
und b
numpy Arrays? In Ihrer obigen Frage verwenden Sie außerdem x
und y
zur Berechnung anstelle von a
und b
. Ist das nur ein Tippfehler?
@
Matrixmultiplikation mit Numpy-Arrays verwenden können. Dies bedeutet, dass es absolut keinen guten Grund geben sollte, Matrizen über Arrays zu verwenden.
a
und b
sind Listen. Sie werden arbeiten in np.dot
; aber nicht in a*b
. Wenn Sie np.array(a)
oder verwenden np.matrix(a)
, *
funktioniert dies jedoch mit unterschiedlichen Ergebnissen.
a
undb
nicht NumPys Matrixtyp? Gibt mit dieser Klasse*
das innere Produkt zurück, nicht elementweise. Aber für die üblichendarray
Klasse*
bedeutet elementartiges Produkt.