2012-05-21 85 views
7

我有一個二維numpy數組。Numpy Array與權重求和

每一行都是三個元素並且是一個整數0-3。這表示一個6位整數,每個單元依次代表兩位。

我試圖將它們轉換爲完整整數。

E.g.

for i in range(len(myarray)): 
    myarray[i] = myarray[i][0] * 16 + myarray[i][1] * 4 + myarray[i][2] 

例如,我試圖根據[16,4,1]的某個權重向量來求和每一行。

什麼是最優雅的方式來做到這一點?我想我必須做一些點積,然後加上一筆總和,但我並不是100%自信地在哪裏做點。

+1

使用numpy的'dot()'方法 –

回答

12

點積傾向是正確的,並且包括您需要的總和。因此,要獲得目標陣列元素和一組權重的乘積之和:

>>> a = np.array([[0,1,2],[2,2,3]]) 
>>> a 
array([[0, 1, 2], 
     [2, 2, 3]]) 
>>> weights = np.array([16,4,2]) 
>>> np.dot(a,weights) 
array([ 8, 46])