numpy.cumulative_sum#
- numpy.cumulative_sum(x, /, *, axis=None, dtype=None, out=None, include_initial=False)[源代码]#
返回沿给定轴的元素的累积和.
此函数是与
numpy.cumsum
兼容的数组 API 替代方案.- 参数:
- xarray_like
输入数组.
- axisint, 可选
计算累积和的轴.默认值(None)仅允许用于一维数组.对于多于一维的数组,``axis`` 是必需的.
- dtypedtype, 可选
返回的数组类型以及元素累加的累加器类型.如果未指定
dtype
,则默认为x
的 dtype,除非x
具有精度低于默认平台整数精度的整数 dtype.在这种情况下,使用默认平台整数.- outndarray, 可选
要在其中放置结果的替代输出数组.它必须具有与预期输出相同的形状和缓冲区长度,但如有必要,类型将被强制转换.有关更多详细信息,请参见 输出类型确定.
- include_initialbool, 可选
布尔值,指示是否将初始值(1)作为输出中的第一个值包含在内.使用
include_initial=True
时,输出的形状与输入的形状不同.默认值:False
.
- 返回:
- cumulative_sum_along_axisndarray
除非指定了
out
,否则将返回一个包含结果的新数组,在这种情况下,将返回对out
的引用.如果include_initial=False
,结果将具有与x
相同的形状.
备注
使用整数类型时,算术是模运算,溢出时不会引发错误.
cumulative_sum(a)[-1]
对于浮点值可能不等于sum(a)
,因为sum
可能使用成对求和程序,减少了舍入误差.更多信息请参见sum
.示例
>>> a = np.array([1, 2, 3, 4, 5, 6]) >>> a array([1, 2, 3, 4, 5, 6]) >>> np.cumulative_sum(a) array([ 1, 3, 6, 10, 15, 21]) >>> np.cumulative_sum(a, dtype=float) # specifies type of output value(s) array([ 1., 3., 6., 10., 15., 21.])
>>> b = np.array([[1, 2, 3], [4, 5, 6]]) >>> np.cumulative_sum(b,axis=0) # sum over rows for each of the 3 columns array([[1, 2, 3], [5, 7, 9]]) >>> np.cumulative_sum(b,axis=1) # sum over columns for each of the 2 rows array([[ 1, 3, 6], [ 4, 9, 15]])
cumulative_sum(c)[-1]
可能不等于sum(c)
>>> c = np.array([1, 2e-9, 3e-9] * 1000000) >>> np.cumulative_sum(c)[-1] 1000000.0050045159 >>> c.sum() 1000000.0050000029