我试图弄清楚如何在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()
似乎必须有一种更有效的方法来做到这一点
答案 0 :(得分:7)
利用broadcasting:
(a.T * b).T
答案 1 :(得分:1)
转置a
的替代方法是更改b
的形状,使广播显示您正在寻找的结果:
a * b[:, np.newaxis]
请注意,将新轴添加到b会产生以下数组:
array([[11],
[12]])