numpy.nansum#

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

返回给定轴上数组元素的总和,并将非数字 (NaN) 视为零.

在 NumPy 版本 <= 1.9.0 中,对于全为 NaN 或为空的切片,将返回 Nan.在更高版本中,将返回零.

参数:
aarray_like

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

{int, tuple of int, None}, optional

计算总和所沿的轴或多个轴. 默认是计算扁平化数组的总和.

dtypedata-type,可选

返回的数组的类型和元素相加的累加器的类型.默认情况下,使用 a 的 dtype.但如果 a 的整数类型精度低于平台 (u)intp,则会例外.在这种情况下,默认值将是 (u)int32 或 (u)int64,具体取决于平台是 32 位还是 64 位.对于非精确输入,dtype 必须是非精确的.

outndarray,可选

在其中放置结果的可选输出数组.默认为 None .如果提供,它必须具有与预期输出相同的形状,但必要时将强制转换类型.有关更多详细信息,请参见 输出类型确定 .将 NaN 强制转换为整数可能会产生意想不到的结果.

keepdimsbool,可选

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

如果该值不是默认值,则 keepdims 将传递给 ndarray 子类的 meansum 方法. 如果子类方法未实现 keepdims ,则会引发任何异常.

initial标量,可选

总和的起始值.有关详细信息,请参见 reduce .

在 1.22.0 版本加入.

其中array_like of bool,可选

要包含在总和中的元素. 详情请参阅 reduce .

在 1.22.0 版本加入.

返回:
nansumndarray.

除非指定了 out ,否则将返回一个包含结果的新数组,在这种情况下,将返回它. 结果的大小与 a 相同,如果 axis 不是 None 或 a 是一个 1-d 数组,则形状与 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)