有没有更简单的方法来获取 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
对于简单的数学运算,上面的代码似乎有些冗长。
谢谢!
只需使用numpy.sum()
:
result = np.sum(matrix)
或者等效地,.sum()
数组的方法:
result = matrix.sum()
默认情况下,这对数组中的所有元素求和 - 如果您想对特定轴求和,您也应该传递axis
参数,例如matrix.sum(0)
对第一个轴求和。
作为旁注,您的 " matrix
" 实际上是 a numpy.ndarray
,而不是 a numpy.matrix
-它们是行为略有不同的不同类,因此最好避免将两者混淆。
是的,只需使用以下sum
方法:
result = m.sum()
例如,
In [17]: m = np.array([[1,2],[3,4]])
In [18]: m.sum()
Out[18]: 10
顺便说一句,NumPy 有一个矩阵类,它与“常规”numpy arrays 不同。因此,调用常规 ndarraymatrix
会导致一些认知失调。为了帮助其他人理解您的代码,您可能需要将名称更改为matrix
其他名称。