1
Sagen, ich habe:ersetzen Looping-over-Achsen mit Rundfunk
a = np.array([[2, 4],
[6, 8]])
b = np.array([[1, 3],
[1, 5]])
ich zu bekommen:
c = np.array([[20,32],
[28, 44]])
wo c
das Ergebnis ist jede Spalte von a
durch b
der Multiplikation, dann Summierung dieses Ergebnisses entlang der ersten Achse.
d.h .:
print(np.sum(a[:, 0] * b, axis=1))
[20 32]
print(np.sum(a[:, 1] * b, axis=1))
[28 44]
Kann ich durch Rundfunk zu tun, statt:
- mit
np.apply_along_axis
oder - durch jede Spalte Looping?
1+ für den Kick. –
Und 'einsum' wird langsamer für kleinere Arrays und schneller für größere? –
@BradSolomon Ohne Achsenausrichtungsanforderung würde ich denken, dass, wenn Sie die Anzahl der Summenreduzierungen erhöhen, d. H. Mit großen Arrays arbeiten, "np.dot" besser wäre. – Divakar