numpy.cumsum#
- numpy.cumsum(a, axis=None, dtype=None, out=None)[source]#
沿给定轴返回元素的累积和。
- 参数:
- 返回值:
- cumsum_along_axisndarray.
除非指定了 out,否则将返回一个包含结果的新数组,在这种情况下,将返回对 out 的引用。结果与 a 大小相同,如果 axis 不为 None 或 a 是一个一维数组,则与 a 形状相同。
另请参阅
cumulative_sum
cumsum
的 Array 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