numpy 矩阵乘法

4 投票
2 回答
1708 浏览
提问于 2025-04-16 04:40

我正在尝试在numpy中进行一种标量矩阵乘法。

我有

a = array(((1,2,3),(4,5,6)))
b = array((11,12))

我想要做

a op b

得到的结果是

array(((1*11,2*11,3*11),(4*12,5*12,6*12))

现在我使用的表达式是

c = a * array((b, b, b)).transpose()

不过,我觉得应该有更高效的方法来实现这个。

2 个回答

1

a 进行转置的另一种方法是改变 b 的形状,这样在进行广播时就能得到你想要的结果:

a * b[:, np.newaxis]

注意,给 b 添加新的轴后,会得到如下数组:

array([[11],
       [12]])
7

利用广播机制的优势:

(a.T * b).T

撰写回答