上一主题

numpy.sum

下一主题

numpy.nansum

numpy.nanprod

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

返回数组元素在给定轴上的处理非数字(NaN)为零的乘积。

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

版本1.10.0中的新功能。

参数:

a:array_like

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

axis:int,可选

计算乘积的轴。默认值是计算展平数组的乘积。

dtype:数据类型,可选

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

out:ndarray,可选

备用输出放置结果的数组。默认值为None如果提供,它必须具有与预期输出相同的形状,但如果必要,将转换类型。有关详细信息,请参阅doc.ufuncs将NaN转换为整数可能会产生意想不到的结果。

keepdims:bool,可选

如果为真,则缩小的轴在结果中保留为尺寸为1的尺寸。使用此选项,结果将相对于原始arr正确广播。

返回:

y:ndarray或numpy scalar

也可以看看

numpy.prod
产品跨数组传播NaNs。
isnan
显示哪些元素是NaN。

笔记

Numpy整数运算是模块化的。如果产品的大小超过整数累加器的大小,其值将回绕,结果将不正确。指定dtype=double可以缓解这个问题。

例子

>>> 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.])