Nehmen wir an, wir haben zwei Matrizen A
und B
und lassen die Matrix C
A*B
sein (Matrixmultiplikation nicht elementweise). Wir möchten nur die diagonalen Einträge von C
, die über np.diagonal(C)
erfolgen kann. Dies verursacht jedoch unnötigen Zeitaufwand, da wir A mit B multiplizieren, obwohl wir nur die Multiplikationen jeder Zeile in A
mit der Spalte B
benötigen, die dieselbe "ID" hat, also Zeile 1 von A
mit Spalte 1 von B
, Reihe 2 von A
mit Spalte 2 von B
und so weiter: die Multiplikationen, die die Diagonale C
bilden. Gibt es eine Möglichkeit, das mit Numpy effizient zu erreichen? Ich möchte vermeiden, mit Schleifen zu steuern, welche Zeile mit welcher Spalte multipliziert wird, stattdessen wünsche ich eine integrierte numpy-Methode, die diese Art von Vorgang zur Optimierung der Leistung ausführt.(Python) Wie bekomme ich die Diagonale (A * B), ohne A * B ausführen zu müssen?
Vielen Dank im Voraus ..
Nur eine Anmerkung für jeden, der dies betrachtet: 'A * B 'in NumPy ist elementweise Multiplikation, nicht Matrixmultiplikation (die' a.dot (b)' ist). – Blair
sind 'A' und' B' vom Typ 'ndarray' oder' matrix'? – Bitwise
@Blair, das ist der Fall, wenn 'A' und' B' 'numpy.array' sind. Wenn sie 'numpy.matrix' sind, können Sie' A * B' –