numpy.cumulative_sum#
- numpy.cumulative_sum(x, /, *, axis=None, dtype=None, out=None, include_initial=False)[源代码]#
计算给定轴上元素的累积和。
此函数是与
numpy.cumsum兼容的 Array API 替代方案。- 参数:
- xarray_like
输入数组。
- axisint, optional
计算累积和的轴。默认值 (None) 仅允许用于一维数组。对于多维数组,需要
axis。- dtypedtype, optional
返回数组的类型以及求和元素的累加器的类型。如果未指定
dtype,则默认为x的 dtype,除非x的整数 dtype 的精度低于默认平台整数的精度。在这种情况下,将使用默认平台整数。- outndarray,可选
用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但必要时会进行类型转换。有关更多详细信息,请参阅 输出类型确定。
- include_initialbool, optional
一个布尔值,指示是否将初始值(零)包含在输出的第一个值中。使用
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