Ich möchte das zeilenweise Skalarprodukt zweier Matrizen der gleichen Dimension so schnell wie möglich berechnen. Dies ist die Art, wie ich es tue:Vektorisierte Methode zur Berechnung von zeilenweisen Skalarprodukten zwei Matrizen mit Scipy
import numpy as np
a = np.array([[1,2,3], [3,4,5]])
b = np.array([[1,2,3], [1,2,3]])
result = np.array([])
for row1, row2 in a, b:
result = np.append(result, np.dot(row1, row2))
print result
und natürlich die Ausgabe lautet:
[ 26. 14.]
Ist Ihr Python-Code, was Sie wirklich wollen? Sie nehmen das Skalarprodukt der ersten und zweiten Zeile von "a" und das Skalarprodukt der ersten und zweiten Zeile von "b", nicht das Skalarprodukt jeder i-ten Zeile von "a" und "b" '. – jorgeca
Wie Jorgeca sagte, ist das für die Indizierung falsch: in diesem Codeausschnitt machst du: dot (a [0,:], a [1 ,:]), dot (b [0 ,:], b [1 ,: ]), siehe http://stackoverflow.com/questions/1663807/how-can-i-iterate-through-two-lists-in-parallel-in-python – lib
Danke für die Erklärung, aber nein, ich war wirklich auf der Suche nach was ich geschrieben, dh zwei Zeilen mit dem gleichen Index multiplizieren. – Cupitor