我有两个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 IMK),其中总和只是在m-索引(重复)之上,而不是在i之上(这又是重复的)。
换句话说,我可以得到双AB ndarray这个for循环
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.]]])
有没有办法避免的循环?我如何用tensordot或者einsum获得AB阵列?
谢谢你的回答,我真的很感激。
确认,他们都工作 – musine