和ndarray值

时间:2013-10-07 10:07:52

标签: python numpy

是否有更简单的方法来获取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

对于简单的数学运算,上面的代码似乎有些冗长。

谢谢!

2 个答案:

答案 0 :(得分:2)

只需使用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,因此最好避免混淆两者。

答案 1 :(得分: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更改为其他内容。