numpy.nanprod#

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

计算给定轴上数组元素的乘积,并将 Not a Numbers (NaN) 视为 1。

对于全为 NaN 或为空的切片,返回 1。

参数:
a类数组对象

包含需要计算乘积的数字的数组。如果 a 不是数组,则尝试进行转换。

axis{int, tuple of int, None}, optional

计算乘积的轴。默认情况下,计算展平数组的乘积。

dtype数据类型,可选

返回数组的类型以及用于累加元素的累加器的类型。默认情况下,使用 a 的 dtype。当 a 的整数类型精度低于平台 (u)intp 时,将有一个例外。在这种情况下,默认值将是 (u)int32 或 (u)int64,具体取决于平台是 32 位还是 64 位。对于非精确输入,dtype 必须是“inexact”。

outndarray,可选

用于放置结果的备用输出数组。默认值为 None。如果提供,它必须与预期输出具有相同的形状,但类型可以根据需要进行转换。有关更多详细信息,请参阅 输出类型确定。将 NaN 转换为整数可能会产生意外结果。

keepdimsbool,可选

如果为 True,则被缩减的轴将作为大小为 1 的维度保留在结果中。使用此选项,结果将与原始 arr 正确广播。

initial标量,可选

此乘积的起始值。有关详细信息,请参阅 reduce

New in version 1.22.0。

wherearray_like of bool,可选

要包含在乘积中的元素。有关详细信息,请参阅 reduce

New in version 1.22.0。

返回:
nanprodndarray

返回一个包含结果的新数组,除非指定了 out,在这种情况下,返回 out

另请参阅

numpy.prod

跨数组传播 NaN 的乘积。

isnan

显示哪些元素是 NaN。

示例

>>> import numpy as np
>>> np.nanprod(1)
1
>>> np.nanprod([1])
1
>>> np.nanprod([1, np.nan])
1.0
>>> a = np.array([[1, 2], [3, np.nan]])
>>> np.nanprod(a)
6.0
>>> np.nanprod(a, axis=0)
array([3., 2.])