dask.array.nancumsum

dask.array.nancumsum

dask.array.nancumsum(x, axis, dtype=None, out=None, *, method='sequential')[源代码]

返回数组元素在给定轴上的累积和,将非数字(NaNs)视为零。遇到NaNs时,累积和不改变,且前导NaNs被替换为零。

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

Dask 版本可能存在一些不一致性。

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

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

选择使用哪种方法来执行 cumsum。默认是 ‘sequential’。

  • ‘sequential’ 在当前块之前对每个先前的块执行累积和。

  • ‘blelloch’ 是一种工作高效的并行 cumsum。它通过

    首先计算每个块的总和,然后通过二叉树组合这些总和。这种方法在不同的工作负载、调度器和硬件上可能会更快或更节省内存。还需要更多的基准测试。

对于所有为NaN或空的切片,返回零。

1.12.0 新版功能.

参数
aarray_like (Dask 中不支持)

输入数组。

int, 可选

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

dtypedtype, 可选

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

ndarray,可选

可选的输出数组,用于放置结果。它必须与预期输出的形状和缓冲区长度相同,但如果需要,类型将被强制转换。更多详情请参见 Output type determination

返回
nancumsumndarray.

除非指定了 out,否则将返回一个包含结果的新数组。结果的大小与 a 相同,如果 axis 不是 None 或者 a 是一个一维数组,则结果的形状与 a 相同。

参见

numpy.cumsum

数组中传播 NaN 的累计和。

isnan

显示哪些元素是 NaN。

示例

>>> import numpy as np  
>>> np.nancumsum(1)  
array([1])
>>> np.nancumsum([1])  
array([1])
>>> np.nancumsum([1, np.nan])  
array([1.,  1.])
>>> a = np.array([[1, 2], [3, np.nan]])  
>>> np.nancumsum(a)  
array([1.,  3.,  6.,  6.])
>>> np.nancumsum(a, axis=0)  
array([[1.,  2.],
       [4.,  2.]])
>>> np.nancumsum(a, axis=1)  
array([[1.,  3.],
       [3.,  3.]])