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?
aund bnumpy Arrays? In Ihrer obigen Frage verwenden Sie außerdem xund yzur Berechnung anstelle von aund 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.
aund bsind 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.
aundbnicht NumPys Matrixtyp? Gibt mit dieser Klasse*das innere Produkt zurück, nicht elementweise. Aber für die üblichendarrayKlasse*bedeutet elementartiges Produkt.