上一主题

numpy.trunc

下一主题

numpy.sum

numpy.prod

numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<class numpy._globals._NoValue>)[source]

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

参数:

a:array_like

输入数据。

axis:无或int或tuple ints,可选

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

版本1.7.0中的新功能。

如果axis是ints的元组,那么将对元组中指定的所有轴执行乘积,而不是像以前一样对单个轴或所有轴执行乘积。

dtype:dtype,可选

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

out:ndarray,可选

用于放置结果的替代输出数组。它必须具有与预期输出相同的形状,但如果必要,将输出输出值的类型。

keepdims:bool,可选

如果设置为True,则缩小的轴在结果中保留为尺寸为1的尺寸。使用此选项,结果将根据输入数组正确地广播。

如果传递默认值,则keepdims将不会传递到ndarray的子类的prod方法,默认值为。如果子类sum方法不实现keepdims,则会引发任何异常。

返回:

product_along_axis:ndarray,请参阅上面的dtype参数。

形状为a但删除指定轴的数组。如果指定,返回out的引用。

也可以看看

ndarray.prod
等效法
numpy.doc.ufuncs
节“输出参数”

笔记

当使用整数类型时,算术是模块化的,并且在溢出时不产生错误。这意味着,在32位平台上:

>>> x = np.array([536870910, 536870910, 536870910, 536870910])
>>> np.prod(x) #random
16

空数组的乘积是中性元素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.])

如果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 == np.int
True