我有两个矩阵。 比如说A是6610号的,B是610号的。 我要做的是将A的10 66个矩阵与B的10 6个元素向量相乘,得到一个6*10的矩阵。 有没有一种不用循环就能做到这一点的方法?
我想要的是
A = np.ones((6,6,10))
B = np.ones((6,10))
mat = np.zeros((6,10))
for i in range(10):
mat[:,i] = A[:,:,i]@B[:,i]
但没有for循环。
我们可以使用np.einsum
-
mat = np.einsum('ijk,jk->ik',A,B)
或者,使用np.matmul/@-operator
-
mat = (A.transpose(2,0,1)@B.T[:,:,None])[...,0].T