numpy.prod #
- 麻木的。prod ( a , axis=None , dtype=None , out=None , keepdims=<无 值> , initial=<无 值> , where=<无 值> ) [来源] #
返回给定轴上数组元素的乘积。
- 参数:
- 类似数组
输入数据。
- axis无或整数或整数元组,可选
产品执行所沿的一个或多个轴。默认值 axis=None,将计算输入数组中所有元素的乘积。如果 axis 为负数,则从最后一个轴计数到第一个轴。
1.7.0 版本中的新增内容。
如果 axis 是整数元组,则对元组中指定的所有轴执行乘积,而不是像以前那样对单个轴或所有轴执行乘积。
- 数据类型数据类型,可选
返回数组的类型,以及元素相乘的累加器的类型。默认情况下使用a的 dtype,除非a的整数 dtype 的精度低于默认平台整数。在这种情况下,如果a有符号,则使用平台整数,而如果a无符号,则使用与平台整数精度相同的无符号整数。
- 输出ndarray,可选
用于放置结果的替代输出数组。它必须具有与预期输出相同的形状,但如果需要,将转换输出值的类型。
- keepdims布尔值,可选
如果将此设置为 True,则缩小的轴将作为大小为 1 的维度保留在结果中。使用此选项,结果将针对输入数组正确广播。
如果传递默认值,则keepdims将不会传递到
prod
的子类的方法ndarray
,但任何非默认值都会传递。如果子类的方法没有实现keepdims,则会引发任何异常。- 初始标量,可选
该产品的起始值。
reduce
详情请参阅。1.15.0 版本中的新增功能。
- 其中array_like of bool,可选
产品中包含的元素。
reduce
详情请参阅。1.17.0 版本中的新增功能。
- 返回:
- Product_along_axis ndarray,参见
dtype
上面的参数。 形状为a 的数组,但删除了指定的轴。如果指定,则返回对out 的引用。
- Product_along_axis ndarray,参见
也可以看看
ndarray.prod
等效方法
- 输出类型确定
笔记
使用整数类型时,算术是模块化的,并且溢出时不会引发错误。这意味着,在 32 位平台上:
>>> x = np.array([536870910, 536870910, 536870910, 536870910]) >>> np.prod(x) 16 # may vary
空数组的乘积是中性元素 1:
>>> np.prod([]) 1.0
例子
默认情况下,计算所有元素的乘积:
>>> 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