2013-10-07 98 views
1

是否有更簡單的方式來獲得所有值的總和在ndarray(假設他們都是數字):總和ndarray值

import numpy as np 

m = np.array([[1,2],[3,4]]) 

result = 0 
(dim0,dim1) = m.shape 
for i in range(dim0): 
    for j in range(dim1): 
     result += m[i,j] 

print result 

上面的代碼似乎是一個簡單的數學運算有點繁瑣。

謝謝!

回答

1

只需使用numpy.sum()

result = np.sum(matrix) 

或等價,數組的.sum()方法:

result = matrix.sum() 

默認情況下此總結在陣列中的所有元素 - 如果你想總結過特定的軸,你也應該通過axis參數,例如matrix.sum(0)總和第一個軸。

作爲一個側面說明,你的「matrix」實際上是一個numpy.ndarray,不是numpy.matrix - they are different classes that behave slightly differently,所以最好避免混淆這兩個。

+0

謝謝你的旁註,相應編輯。 –

1

是,只需使用方法sum

result = m.sum() 

例如,

In [17]: m = np.array([[1,2],[3,4]]) 

In [18]: m.sum() 
Out[18]: 10 

順便提及,NumPy的具有矩陣類,這是different than "regular" numpy arrays。因此,撥打常規ndarray matrix會導致一些認知失調。爲了幫助他人瞭解您的代碼,您可能需要將名稱matrix更改爲其他名稱。

+0

感謝您的支持,相應編輯。 –