当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.array.cumsum用法及代码示例


用法:

dask.array.cumsum(x, axis=None, dtype=None, out=None, method='sequential')

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

此文档字符串是从 numpy.cumsum 复制的。

可能存在与 Dask 版本的一些不一致之处。

Dask 添加了一个额外的仅关键字参数 method

方法{‘sequential’, ‘blelloch’},可选

选择用于执行 cumsum 的方法。默认为‘sequential’。

  • ‘sequential’ 在当前块之前执行每个先前块的cumsum。
  • ‘blelloch’ 是一个 work-efficient 并行 cumsum。它通过首先获取每个块的总和并通过二叉树组合总和来公开并行性。根据工作负载、调度程序和硬件,此方法可能更快或更节省内存。更多的基准测试是必要的。

参数

a数组(在 Dask 中不支持)

输入数组。

axis整数,可选

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

dtypedtype,可选

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

outndarray,可选

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

返回

cumsum_along_axis数组。

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

注意

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

对于浮点值,cumsum(a)[-1] 可能不等于 sum(a),因为 sum 可能使用成对求和例程,从而减少了 roundoff-error。有关详细信息,请参阅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

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.array.cumsum。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。