2010-09-28 40 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]])