numpy.nansum#
- numpy.nansum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[源代码]#
返回在给定轴上数组元素的总和,将非数字 (NaNs) 视为零.
在 NumPy 版本 <= 1.9.0 中,对于所有为 NaN 或空的切片,返回 NaN.在后续版本中,返回零.
- 参数:
- aarray_like
包含所需求和数字的数组.如果 a 不是数组,则尝试进行转换.
- axis{int, tuple of int, None}, 可选
计算总和的轴或轴.默认是计算展平数组的总和.
- dtype数据类型, 可选
返回数组的类型以及累加器中元素求和的类型.默认情况下,使用 a 的 dtype.当 a 具有精度低于平台 (u)intp 的整数类型时,会出现异常.在这种情况下,默认值将取决于平台是 32 位还是 64 位,分别为 (u)int32 或 (u)int64.对于不精确的输入,dtype 必须是不精确的.
在 1.8.0 版本加入.
- outndarray, 可选
要在其中放置结果的备用输出数组.默认值为
None
.如果提供,它必须具有与预期输出相同的形状,但必要时会进行类型转换.有关更多详细信息,请参见 输出类型确定.将 NaN 转换为整数可能会产生意外结果.在 1.8.0 版本加入.
- keepdimsbool, 可选
如果设置为 True,被减少的轴将作为尺寸为1的维度保留在结果中.使用此选项,结果将正确地与原始 a 广播.
如果值不是默认值,那么 keepdims 将被传递给
ndarray
子类的mean
或sum
方法.如果子类的方法未实现 keepdims,任何异常将被引发.在 1.8.0 版本加入.
- initial标量,可选
求和的起始值.详见
reduce
.在 1.22.0 版本加入.
- where类数组的布尔值,可选
要在总和中包含的元素.详见
reduce
.在 1.22.0 版本加入.
- 返回:
- nansumndarray.
除非指定了 out,否则将返回一个保存结果的新数组.结果的大小与 a 相同,如果 axis 不是 None 或者 a 是一个 1-d 数组,则结果的形状与 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)