numpy.nansum#
- numpy.nansum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[源代码]#
返回给定轴上数组元素的总和,并将Not a Numbers (NaNs) 视为零.
在 NumPy <= 1.9.0 版本中,对于全 NaN 或空切片,将返回 Nan. 在更高版本中,将返回零.
- 参数:
- aarray_like
包含需要求和的数字的数组.如果 a 不是数组,则会尝试转换.
- axis{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子类的mean或sum方法.如果子类的方法没有实现 keepdims ,则会引发任何异常.- initial标量,可选.
总和的起始值.有关详细信息,请参见
reduce.在 1.22.0 版本加入.
- wherebool 的类数组对象,可选
要包含在总和中的元素.有关详细信息,请参见
reduce.在 1.22.0 版本加入.
- 返回:
- nansumndarray.
除非指定了 out ,否则将返回一个包含结果的新数组,在这种情况下,将返回该数组. 结果的大小与 a 相同,如果 axis 不是 None 或者 a 是一个一维数组,则形状与 a 相同.
注释
如果同时存在正无穷和负无穷,则总和将为非数字 (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)