numpy.nansum#

numpy.nansum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[source]#

返回数组元素沿指定轴的和,并将非数字 (NaN) 值视为零。

在 NumPy 1.9.0 及以下版本中,对于全为 NaN 或为空的切片,返回 NaN。在更高版本中,返回零。

参数:
aarray_like

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

axis{int, int 元组, None}, 可选

计算总和的轴或轴。默认为计算展平数组的总和。

dtype数据类型, 可选

返回数组和累加器的类型,其中累加数组元素。默认情况下,使用 a 的 dtype。例外情况是当 a 的整数类型精度低于平台 (u)intp 时。在这种情况下,默认值将根据平台是 32 位还是 64 位,分别为 (u)int32 或 (u)int64。对于不精确的输入,dtype 必须是不精确的。

outndarray, 可选

用于放置结果的备用输出数组。默认为 None。如果提供,它必须与预期输出具有相同的形状,但如有必要,类型将被转换。详情请参见 输出类型确定。将 NaN 转换为整数可能会产生意想不到的结果。

keepdimsbool, 可选

如果将其设置为 True,则减少的轴将作为大小为一的维度保留在结果中。使用此选项,结果将针对原始 a 正确广播。

如果该值不是默认值,则 keepdims 将传递到 meansum ndarray 的子类的函数。如果子类的函数没有实现 keepdims,则将引发任何异常。

initial标量, 可选

和的起始值。详情请参见 reduce

版本 1.22.0 中的新功能。

wherebool 型 array_like, 可选

要包含在总和中的元素。详情请参见 reduce

版本 1.22.0 中的新功能。

返回:
nansumndarray。

除非指定了 out,否则将返回一个包含结果的新数组。结果与 a 大小相同,如果 axis 不为 None 或 a 为一维数组,则形状与 a 相同。

参见

numpy.sum

传播 NaN 的数组求和。

isnan

显示哪些元素是 NaN。

isfinite

显示哪些元素不是 NaN 或 +/-inf。

备注

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

示例

>>> import numpy as np
>>> 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.inf])
-inf
>>> from numpy.testing import suppress_warnings
>>> with np.errstate(invalid="ignore"):
...     np.nansum([1, np.nan, np.inf, -np.inf]) # both +/- infinity present
np.float64(nan)