2010-09-28 71 views
4

我想弄清楚如何在numpy中做一种标量矩阵乘法。numpy matrix multiplication

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()

好像有必须这样做虽然

回答

7

考虑的broadcasting优势的更有效的方法:

(a.T * b).T 
+0

我认为这就是问题所要求的转置。 – 2010-09-28 02:48:17

+0

@ Jon-Eric:谢谢,我修好了。 – 2010-09-28 02:54:31

+0

谢谢 - 这很好用 – damien 2010-09-28 04:05:17

1

来调换a另一种方法是改变b形状,使广播给予你正在寻找的结果:

a * b[:, np.newaxis] 

请注意,将新轴添加到b给出以下数组:

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