numpy.prod#
- numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[源代码]#
计算给定轴上数组元素的乘积。
- 参数:
- a类数组对象
输入数据。
- axisNone 或 int 或 int 元组,可选
进行乘积的轴。默认值 `axis=None` 将计算输入数组中所有元素的乘积。如果 `axis` 为负数,则从最后一个轴计数到第一个轴。
如果 `axis` 是一个整数元组,则在元组中指定的所有轴上计算乘积,而不是像之前那样计算单个轴或所有轴。
- dtypedtype, optional
返回数组的类型,以及用于累积乘积的累加器的类型。默认情况下使用 `a` 的 `dtype`,除非 `a` 具有精度低于默认平台整数的整数 `dtype`。在这种情况下,如果 `a` 是有符号的,则使用平台整数;如果 `a` 是无符号的,则使用与平台整数相同精度的无符号整数。
- outndarray,可选
用于放置结果的备选输出数组。它必须与预期输出具有相同的形状,但输出值的类型将在必要时进行转换。
- keepdimsbool,可选
如果设置为 True,则被缩减的轴将保留在结果中,其大小为 1。使用此选项,结果将能够与输入数组正确广播。
如果传递默认值,则 `keepdims` 不会传递给 `ndarray` 的子类的
prod方法,但任何非默认值都会传递。如果子类的方法未实现 `keepdims`,则会引发任何异常。- initial标量,可选
此乘积的起始值。有关详细信息,请参阅
reduce。- wherearray_like of bool,可选
包含在乘积中的元素。有关详细信息,请参阅
reduce。
- 返回:
- product_along_axisndarray,请参阅上面的
dtype参数。 一个形状与 `a` 相同但指定的轴被移除的数组。如果指定了 `out`,则返回 `out` 的引用。
- product_along_axisndarray,请参阅上面的
另请参阅
ndarray.prod等效方法
- 输出类型确定
备注
使用整数类型时,算术是模运算,溢出时不会引发错误。这意味着,在 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
您也可以从一个大于一的值开始乘积
>>> np.prod([1, 2], initial=5) 10