numpy 矩阵乘法
我正在尝试在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