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