dask.array.cumprod

dask.array.cumprod

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

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

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

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

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

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

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

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

  • ‘blelloch’ 是一种工作效率高的并行 cumprod。它通过首先计算每个块的乘积,并通过二叉树组合这些乘积来暴露并行性。这种方法的速度或内存效率可能取决于工作负载、调度器和硬件。更多基准测试是必要的。

参数
aarray_like (Dask 中不支持)

输入数组。

int, 可选

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

dtypedtype, 可选

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

ndarray,可选

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

返回
cumprodndarray

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

参见

cumulative_prod

cumprod 兼容的数组 API 替代方案。

ufuncs-输出类型

注释

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

示例

>>> import numpy as np  
>>> a = np.array([1,2,3])  
>>> np.cumprod(a) # intermediate results 1, 1*2  
...               # total product 1*2*3 = 6
array([1, 2, 6])
>>> a = np.array([[1, 2, 3], [4, 5, 6]])  
>>> np.cumprod(a, dtype=float) # specify type of output  
array([   1.,    2.,    6.,   24.,  120.,  720.])

a 中每一列(即,按行)的累积乘积:

>>> np.cumprod(a, axis=0)  
array([[ 1,  2,  3],
       [ 4, 10, 18]])

a 中每一行的累积乘积(即在列上):

>>> np.cumprod(a,axis=1)  
array([[  1,   2,   6],
       [  4,  20, 120]])