numpy.cumulative_prod#
- numpy.cumulative_prod(x, /, *, axis=None, dtype=None, out=None, include_initial=False)[source]#
返回沿给定轴的元素的累积积。
此函数是
numpy.cumprod
的 Array API 兼容替代方案。- 参数:
- xarray_like
输入数组。
- axisint, 可选
计算累积积的轴。默认值 (None) 仅允许用于一维数组。对于具有多个维度的数组,需要
axis
。- dtypedtype, 可选
返回数组的类型,以及用于累积元素的累加器的类型。如果未指定
dtype
,则默认为x
的 dtype,除非x
的整数 dtype 的精度小于默认平台整数的精度。在这种情况下,将使用默认平台整数。- outndarray, 可选
放置结果的备用输出数组。它必须与预期输出具有相同的形状和缓冲区长度,但如果需要,将转换结果值的类型。有关更多详细信息,请参阅 输出类型确定。
- include_initialbool, 可选
布尔值,指示是否将初始值(1)作为输出中的第一个值包含在内。如果
include_initial=True
,则输出的形状与输入的形状不同。默认值:False
。
- 返回值:
- cumulative_prod_along_axisndarray
除非指定了
out
,否则将返回一个保存结果的新数组,在这种情况下,将返回对out
的引用。如果include_initial=False
,则结果与x
具有相同的形状。
注释
使用整数类型时,算术运算为模运算,并且不会在溢出时引发错误。
示例
>>> a = np.array([1, 2, 3]) >>> np.cumulative_prod(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.cumulative_prod(a, dtype=float) # specify type of output array([ 1., 2., 6., 24., 120., 720.])
b
的每一列(即,跨行)的累积积>>> b = np.array([[1, 2, 3], [4, 5, 6]]) >>> np.cumulative_prod(b, axis=0) array([[ 1, 2, 3], [ 4, 10, 18]])
b
的每一行(即,跨列)的累积积>>> np.cumulative_prod(b, axis=1) array([[ 1, 2, 6], [ 4, 20, 120]])