Ich habe zwei 3DNumpy ndarray Multiplikation
A=np.array([[[1, 1],
[1, 1],
[1, 1]],
[[2, 2],
[2, 2],
[2, 2]]])
B=np.array([[[ 2, 0],
[ 0, 2]],
[[ 2, -2],
[-2, 2]]])
ich die AB-Array mit Elementen AB ijk = Σ m (A IJM * B imk), wo die ndarray numpy erstellen möchten Summierung ist nur über den M-Index (wiederholt) und nicht über i (das wird wiederum wiederholt).
Mit anderen Worten kann ich di AB ndarray mit diesem erhält für Schleife
for i in range(2):
AB[i,:,:]=np.dot(A[i,:,:],B[i,:,:])
und AB gleich
array([[[ 2., 2.],
[ 2., 2.],
[ 2., 2.]],
[[ 0., 0.],
[ 0., 0.],
[ 0., 0.]]])
Gibt es Art und Weise die for-Schleife zu vermeiden? Wie kann ich das AB-Array mit Tensordot oder Einsum erhalten?
Vielen Dank für Ihre Antworten, ich schätze es wirklich.
Bestätigt, beide funktionieren – musine