Skip to content

Latest commit

 

History

History
136 lines (86 loc) · 3.27 KB

np126_0838.md

File metadata and controls

136 lines (86 loc) · 3.27 KB

numpy.prod

原文:numpy.org/doc/1.26/reference/generated/numpy.prod.html

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 为负,则从最后一个到第一个轴计数。

1.7.0 版本中的新功能。

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

dtypedtype,可选

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

outndarray,可选

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

keepdims布尔值,可选

如果设置为 True,则缩减的轴会保留在结果中作为大小为一的维度。使用此选项,结果将正确广播到输入数组。

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

initial标量,可选

此乘积的初始值。有关详情,请参见reduce

1.15.0 版本中的新功能。

where布尔数组,可选

要包括在乘积中的元素。有关详情,请参见reduce

1.17.0 版本中的新功能。

返回:

product_along_axisndarray,参见上述dtype参数。

一个形状与a相同但去除指定轴的数组。如果指定,则返回对out的引用。

参见

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 

你还可以从一个值开始计算积,而不是从一开始:

>>> np.prod([1, 2], initial=5)
10