在一个二维的shape (1000, 5)
数组中,我有一组5维的shape (5,)
,每个向量都要乘以一个形状(6, 5)
的矩阵。在
我本以为广播可以让我这么做
A = np.random.rand(1000, 5)
B = np.random.rand(1, 6, 5) # empty axis for broadcasting
np.matmul(B, A)
但这不能正常工作。在
有没有一种方法可以做这种乘法,使np.matmul(B, A)
产生形状(1000, 6)
的输出?在
Tags:
我刚刚想出了答案。解决方案是将数组格式化为
广播也没问题。希望这有帮助!在
如果你真的有这个:
那么做这个手术更简单的方法是
^{pr2}$或者
^{3}$记住矩阵乘法是内积,因此内部维数必须匹配(在本例中,是}维,使它们按正确的顺序排列。在
5
)。通过转置.T
可以交换6
和{如果您不想使用顺序(假设您有大量的维度),也可以始终使用
np.einsum
显式地设置轴optimize
使其几乎与.dot()
或@
一样快,但目前只在您不需要在输入上广播维度时才起作用(您不在这里)。在相关问题 更多 >
编程相关推荐