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。在更高版本中返回零。
- 参数:
- a类似数组的
包含需要求和的数字的数组。如果 a 不是数组,则尝试进行转换。
- axis{int, int 元组, None}, 可选
计算和的轴或多个轴。默认计算扁平化数组的和。
- dtype数据类型, 可选
返回数组和元素求和的累加器的类型。默认情况下,使用 a 的 dtype。例外情况是当 a 的整数类型精度低于平台 (u)intp 时。在这种情况下,默认将是 (u)int32 或 (u)int64,具体取决于平台是 32 位还是 64 位。对于不精确的输入,dtype 必须是不精确的。
- outndarray, 可选
用于放置结果的备用输出数组。默认值为
None
。如果提供,它必须与预期输出具有相同的形状,但必要时将进行类型转换。有关更多详细信息,请参阅 输出类型确定。将 NaN 转换为整数可能会产生意外结果。- keepdimsbool, 可选
如果设置为 True,则减小的轴将作为大小为一的维度保留在结果中。使用此选项,结果将与原始 a 正确广播。
如果该值不是默认值,则 keepdims 将传递给
mean
或sum
方法,这些方法是ndarray
的子类。如果子类方法未实现 keepdims,则会引发任何异常。- initial标量, 可选
求和的起始值。详见
reduce
。1.22.0 版本新增。
- wherebool 类型的类似数组的, 可选
要包含在和中的元素。详见
reduce
。1.22.0 版本新增。
- 返回:
- nansumndarray。
返回一个包含结果的新数组,除非指定了 out,在这种情况下返回 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)