У меня есть два 3D Numpy ndarrayNumpy ndarray умножение
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]]])
Я хочу создать массив AB с элементами AB IJK = Σ м (A IJM * B ИМК), где суммирование ведется только по m-индексу (повторяется) и не превышает i (что, в свою очередь, повторяется).
Другими словами, я могу получить ди AB ndarray с этим цикл
for i in range(2):
AB[i,:,:]=np.dot(A[i,:,:],B[i,:,:])
и AB равна
array([[[ 2., 2.],
[ 2., 2.],
[ 2., 2.]],
[[ 0., 0.],
[ 0., 0.],
[ 0., 0.]]])
Есть ли способ избежать для цикла? Как я могу получить массив AB с тензордотом или einsum?
Благодарим за ответы, я очень благодарен вам.
Подтверждено, оба они работают – musine