像这样的矩阵乘法
使用numpy
很容易在Python中实现
import numpy as np
np.array([[1, 2, 3]]) * np.array([[1], [2], [3]])
array([[1, 2, 3],
[2, 4, 6],
[3, 6, 9]])
但在我的情况下,我有两个二维矩阵,我想把它们相乘形成一个3D矩阵。实际上,二维矩阵的第一个“切片”是一个数组,我想用第二个矩阵的第一个“切片”相乘,形成一个二维矩阵。对于2D矩阵的所有“切片”都是如此。第一个维度是[x,z]
,第二个维度是[y,z]
。我想把它们相乘得到[x,y,z]
。在numpy
中有没有一种优雅的方法来做到这一点?在
我设法通过对this StackOverflow question的响应来解决这个问题。在
因为你已经可以把你的乘法描述为
最直接的解决方案很可能是使用Einsum:
^{pr2}$另一种选择是简单地使用广播
相关问题 更多 >
编程相关推荐