我的 3d 数组的形状为 (3, 2, 3),我的 2d 数组的形状为 (2, 3)。我想要进行的乘法是 np.dot(2d, 3d[i,:,:].T) 因此它应该返回形状为 (3, 2, 2) 的结果。我可以编写一个循环,但这不是最有效的方法,我读过有一个名为 np.tensordot 的操作,但它适合我的情况吗?如果是的话,它将如何运作?
最佳答案
我们可以使用np.einsum
-
# a, b are 3D and 2D arrays respectively
np.einsum('ijk,lk->ilj', a, b)
或者,在 Python3.x 上使用 np.matmul/@-operator
-
np.matmul(a,b.T[None]).swapaxes(1,2)
关于python - 如何在 Python 中使用 numpy 将 3D 矩阵和 2D 矩阵相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58879077/