dask.array.nancumprod

dask.array.nancumprod

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

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

此文档字符串是从 numpy.nancumprod 复制而来的。

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

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

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

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

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

  • ‘blelloch’ 是一种工作效率高的并行 cumprod。它通过首先

    通过二叉树的方式将每个块的乘积结合起来。这种方法可能在某些工作负载、调度器和硬件上更快或更节省内存。还需要更多的基准测试。

对于全是NaN或空的切片,返回一个。

1.12.0 新版功能.

参数
aarray_like (Dask 中不支持)

输入数组。

int, 可选

计算累积乘积的轴。默认情况下,输入会被展平。

dtypedtype, 可选

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

ndarray,可选

可选的输出数组,用于放置结果。它必须与预期输出的形状和缓冲区长度相同,但如果需要,结果值的类型将被强制转换。

返回
nancumprodndarray

除非指定了 out,否则将返回一个包含结果的新数组。

参见

numpy.cumprod

累积乘积跨越数组传播 NaN。

isnan

显示哪些元素是 NaN。

示例

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