numpy.cumsum#
- numpy.cumsum(a, axis=None, dtype=None, out=None)[源代码]#
返回沿给定轴的元素的累积和.
- 参数:
- 返回:
- cumsum_along_axisndarray.
除非指定了 out ,否则将返回一个包含结果的新数组,在这种情况下,将返回对 out 的引用.结果与 a 具有相同的大小,如果 axis 不是 None 或 a 是一个 1-d 数组,则结果与 a 具有相同的形状.
参见
cumulative_sum
与
cumsum
兼容的数组 API 替代方案.sum
求数组元素的和.
trapezoid
使用复合梯形法则集成数组值.
diff
计算沿给定轴的第 n 个离散差分.
备注
使用整数类型时,算术是模运算的,并且在溢出时不会引发错误.
cumsum(a)[-1]
对于浮点值可能不等于sum(a)
,因为sum
可能使用成对求和程序,减少了舍入误差.更多信息请参见sum
.示例
>>> import numpy as np >>> a = np.array([[1,2,3], [4,5,6]]) >>> a array([[1, 2, 3], [4, 5, 6]]) >>> np.cumsum(a) array([ 1, 3, 6, 10, 15, 21]) >>> np.cumsum(a, dtype=float) # specifies type of output value(s) array([ 1., 3., 6., 10., 15., 21.])
>>> np.cumsum(a,axis=0) # sum over rows for each of the 3 columns array([[1, 2, 3], [5, 7, 9]]) >>> np.cumsum(a,axis=1) # sum over columns for each of the 2 rows array([[ 1, 3, 6], [ 4, 9, 15]])
cumsum(b)[-1]
可能不等于sum(b)
>>> b = np.array([1, 2e-9, 3e-9] * 1000000) >>> b.cumsum()[-1] 1000000.0050045159 >>> b.sum() 1000000.0050000029