numpy.prod

numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[源代码]

返回数组元素在给定轴上的乘积。

参数
aarray_like

输入数据。

axis无、int或int的元组,可选

执行产品的轴。默认值axis=none将计算输入数组中所有元素的乘积。如果轴为负,则从最后一个轴到第一个轴计数。

1.7.0 新版功能.

如果axis是整数的元组,则产品将在元组中指定的所有轴上执行,而不是像以前那样在单个轴或所有轴上执行。

dtype可选类型

返回数组的类型,以及元素相乘的累加器的类型。D型 a 默认情况下使用,除非 a 具有比默认平台整数精度低的整数数据类型。在这种情况下,如果 a 是有符号的,则使用平台整数,如果 a 则使用与平台整数精度相同的无符号整数。

outndarray,可选

用于放置结果的可选输出数组。它必须具有与预期输出相同的形状,但如果需要,将强制转换输出值的类型。

keepdims可选的布尔

如果设置为“真”,则缩小的轴将保留在结果中,作为尺寸为1的尺寸。使用此选项,结果将针对输入数组正确广播。

如果传递了默认值,则 keepdims 不会传给 prod 子类方法 ndarray 但是,任何非默认值都是。如果子类的方法不实现 keepdims 将引发任何异常。

initial标量,可选

此产品的起始值。见 reduce 有关详细信息。

1.15.0 新版功能.

where数组类似bool,可选

要包含在产品中的元素。看到了吗 reduce 有关详细信息。

1.17.0 新版功能.

返回
product_along_axis 尼达雷,看 dtype 上面的参数。恩达雷,看到了吗

形状为 a 但删除了指定的轴。返回对的引用 out 如果指定。

笔记

使用整数类型时,算术是模块化的,溢出时不会产生错误。这意味着,在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

即使输入数组是二维的:

>>> np.prod([[1.,2.],[3.,4.]])
24.0

但我们也可以指定要乘以的轴:

>>> np.prod([[1.,2.],[3.,4.]], axis=1)
array([  2.,  12.])

或选择要包括的特定元素:

>>> 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