numpy.cumsum #

麻木的。cumsum ( a , axis = None , dtype = None , out = None ) [来源] #

返回沿给定轴的元素的累积和。

参数
类似数组

输入数组。

int,可选

计算累积和的轴。默认值(无)是计算展平数组上的累积和。

数据类型数据类型,可选

返回的数组以及对元素进行求和的累加器的类型。如果dtype未指定,则默认为a的数据类型,除非a的整数数据类型的精度小于默认平台整数的精度。在这种情况下,将使用默认的平台整数。

输出ndarray,可选

用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,类型将被转换。有关更多详细信息,请参阅输出类型确定。

返回
cumsum_along_axis ndarray。

除非指定了out ,否则将返回保存结果的新数组,在这种情况下,将返回对out 的引用。如果 axis不是 None 或a是一维数组,结果的大小与a相同,并且形状与a相同。

也可以看看

sum

对数组元素求和。

trapz

使用复合梯形规则对数组值进行积分。

diff

计算沿给定轴的第 n 个离散差值。

笔记

使用整数类型时,算术是模块化的,并且溢出时不会引发错误。

cumsum(a)[-1]sum(a)对于浮点值可能不等于,因为sum可以使用成对求和例程,从而减少舍入误差。请参阅sum获取更多信息。

例子

>>> 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