numpy.nansum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
返回在给定轴上对数组元素求和的结果,将 Not a Number(NaN)视为零。
在 NumPy 版本 <= 1.9.0 中,针对全部是 NaN 或者空数组的切片会返回 Nan。在后续版本中,将返回零。
参数:
a 类似数组
包含���需求和结果的数字数组。如果 a 不是数组,则尝试进行转换。
axis {int, int 元组, None},可选参数
沿着其进行求和的轴或轴。默认是对压平的数组求和。
dtype 数据类型,可选参数
返回的数组和元素求和的累加器的数据类型。默认情况下,使用 a 的数据类型。特例是当 a 的整数类型比平台的精度低时(u)intp。在这种情况下,默认值将分别为(u)int32 或(u)int64,具体取决于平台是 32 位还是 64 位。对于不精确的输入,数据类型必须是不精确的。
新版本 1.8.0 中。
out ndarray,可选参数
用于存放结果的备用输出数组。默认值为 None
。如果提供,则必须具有与预期输出相同的形状,但必要时会进行类型转换。有关更多详情,请参阅输出类型确定。将 NaN 转换为整数可能会产生意外结果。
新版本 1.8.0 中。
keepdims 布尔型,可选参数
如果设置为 True,则减少的轴将保持在结果中作为具有大小为一的维度。使用此选项时,结果将正确对原始 a 进行广播。
如果数值不是默认值,则 keepdims 将传递给mean
或sum
的 ndarray 的子类方法。如果子类方法不实现 keepdims,则会引发任何异常。
新版本 1.8.0 中。
initial 标量,可选参数
求和的起始值。详见reduce
。
新版本 1.22.0 中。
where 布尔型数组,可选参数
要包含在求和中的元素。详见reduce
。
新版本 1.22.0 中。
返回:
nansum ndarray。
返回一个新的数组来保存结果,除非指定了 out 参数,否则将返回该数组。如果 axis 不为 None 或者 a 是一个一维数组,则结果的大小和 a 的形状相同。
另请参阅
numpy.sum
对数组中的 NaN 进行求和。
isnan
显示哪些元素是 NaN。
isfinite
显示哪些元素不是 NaN 或 +/-inf。
注意事项
如果同时存在正无穷大和负无穷大,它们的和将为非数字(NaN)。
示例
>>> 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
>>> from numpy.testing import suppress_warnings
>>> with suppress_warnings() as sup:
... sup.filter(RuntimeWarning)
... np.nansum([1, np.nan, np.inf, -np.inf]) # both +/- infinity present
nan