上一主题

numpy.nanprod

下一主题

numpy.cumprod

numpy.nansum

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

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

在Numpy版本在以后的版本中返回零。

参数:

a:array_like

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

axis:int,可选

计算和的轴。默认值是计算展平的数组的总和。

dtype:数据类型,可选

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

版本1.8.0中的新功能。

out:ndarray,可选

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

版本1.8.0中的新功能。

keepdims:bool,可选

如果设置为True,则缩小的轴在结果中保留为尺寸为1的尺寸。使用此选项,结果将与原始a正确地广播。

If the value is anything but the default, then keepdims will be passed through to the mean or sum methods of sub-classes of ndarray. 如果子类方法不实现keepdims,则会引发任何异常。

版本1.8.0中的新功能。

返回:

y:ndarray或numpy scalar

也可以看看

numpy.sum
数组传播NaNs。
isnan
显示哪些元素是NaN。
isfinite
显示哪些元素不是NaN或+/- inf。

笔记

如果存在正和负无穷大,则和将是非数字(NaN)。

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

例子

>>> np.nansum(1)
1
>>> np.nansum([1])
1
>>> np.nansum([1, np.nan])
1.0
>>> a = np.array([[1, 1], [1, np.nan]])
>>> np.nansum(a)
3.0
>>> np.nansum(a, axis=0)
array([ 2.,  1.])
>>> np.nansum([1, np.nan, np.inf])
inf
>>> np.nansum([1, np.nan, np.NINF])
-inf
>>> np.nansum([1, np.nan, np.inf, -np.inf]) # both +/- infinity present
nan