dask.array.prod
dask.array.prod¶
- dask.array.prod(a, axis=None, dtype=None, keepdims=False, split_every=None, out=None)[源代码]¶
返回给定轴上数组元素的乘积。
此文档字符串是从 numpy.prod 复制的。
Dask 版本可能存在一些不一致性。
- 参数
- aarray_like
输入数据。
- 轴None 或 int 或 int 的元组,可选
执行乘积操作的轴或轴。默认情况下,axis=None,将计算输入数组中所有元素的乘积。如果axis为负数,则从最后一个轴开始计数到第一个轴。
1.7.0 新版功能.
如果 axis 是一个整数元组,则会在元组中指定的所有轴上执行乘积,而不是像之前那样只在一个轴或所有轴上执行。
- dtypedtype, 可选
返回数组的类型,以及用于相乘元素的累加器的类型。除非 a 的整数精度低于默认平台整数,否则默认使用 a 的 dtype。在这种情况下,如果 a 是有符号的,则使用平台整数;如果 a 是无符号的,则使用与平台整数精度相同的无符号整数。
- 出ndarray,可选
可选的输出数组,用于放置结果。它必须与预期输出的形状相同,但如果需要,输出值的类型将被强制转换。
- keepdimsbool, 可选
如果设置为True,被减少的轴将作为尺寸为1的维度保留在结果中。通过此选项,结果将正确地与输入数组进行广播。
如果传递了默认值,那么 keepdims 将不会传递给 ndarray 子类的 prod 方法,然而任何非默认值都会被传递。如果子类的方法没有实现 keepdims,任何异常都会被引发。
- 初始标量,可选 (Dask 中不支持)
此产品的起始值。详情请参见 ~numpy.ufunc.reduce。
1.15.0 新版功能.
- 哪里array_like 的布尔值,可选 (Dask 不支持)
产品中包含的元素。详情请参阅 ~numpy.ufunc.reduce。
1.17.0 新版功能.
- 返回
- product_along_axis : ndarray, 见上文的 dtype 参数。ndarray, 参见
一个形状为 a 但移除了指定轴的数组。如果指定了 out,则返回对 out 的引用。
参见
ndarray.prod
等效方法
- ufuncs-输出类型
注释
使用整数类型时,算术是模运算,并且在溢出时不会引发错误。这意味着,在32位平台上:
>>> x = np.array([536870910, 536870910, 536870910, 536870910]) >>> np.prod(x) 16 # may vary
空数组的乘积是中性元素 1:
>>> np.prod([]) 1.0
示例
默认情况下,计算所有元素的乘积:
>>> import numpy as np >>> np.prod([1.,2.]) 2.0
即使输入数组是二维的:
>>> a = np.array([[1., 2.], [3., 4.]]) >>> np.prod(a) 24.0
但我们也可以指定要乘以的轴:
>>> np.prod(a, axis=1) array([ 2., 12.]) >>> np.prod(a, axis=0) array([3., 8.])
或者选择特定元素以包含:
>>> np.prod([1., np.nan, 3.], where=[True, False, True]) 3.0
如果 x 的类型是无符号的,那么输出类型是无符号的平台整数:
>>> x = np.array([1, 2, 3], dtype=np.uint8) >>> np.prod(x).dtype == np.uint True
如果 x 是有符号整数类型,那么输出类型是默认的平台整数:
>>> x = np.array([1, 2, 3], dtype=np.int8) >>> np.prod(x).dtype == int True
你也可以用一个不同于1的值来启动产品:
>>> np.prod([1, 2], initial=5) 10