numpy.cumsum#
- numpy.cumsum(a, axis=None, dtype=None, out=None)[源代码]#
返回给定轴上元素的累积和。
- 参数:
- 返回:
- cumsum_along_axisndarray.
除非指定了 out,否则返回一个包含结果的新数组;如果指定了 out,则返回对 out 的引用。结果与 a 具有相同的大小,如果 axis 不为 None 或 a 是一维数组,则与 a 具有相同的形状。
另请参阅
cumulative_sum
适用于数组 API 的
cumsum
兼容替代方案。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