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。在后续版本中,则返回零。
- 参数:
- a类数组对象
包含需要求和的数字的数组。如果 a 不是数组,则会尝试进行转换。
- axis{int, tuple of int, None}, optional
计算和的轴。默认情况下,计算展平后数组的和。
- dtype数据类型,可选
返回数组的类型以及用于累加元素类型的累加器。默认情况下,使用 a 的 dtype。除非 a 是整数类型但精度低于平台 (u)intp。在这种情况下,默认值将是 (u)int32 或 (u)int64,具体取决于平台是 32 位还是 64 位。对于非精确输入,dtype 必须是非精确的。
- outndarray,可选
用于放置结果的备用输出数组。默认值为
None。如果提供,它必须具有与预期输出相同的形状,但类型将根据需要进行转换。有关更多详细信息,请参阅 输出类型确定。将 NaN 转换为整数可能会产生意外结果。- keepdimsbool,可选
如果设置为 True,则缩减的轴将在结果中保留为大小为 1 的维度。使用此选项,结果将与原始 a 正确广播。
如果值不是默认值,则 keepdims 将会传递给
mean或sum方法的ndarray子类。如果子类方法未实现 keepdims,则会引发任何异常。- initial标量,可选
求和的起始值。有关详细信息,请参阅
reduce。New in version 1.22.0。
- wherearray_like of bool,可选
包含在求和中的元素。有关详细信息,请参阅
reduce。New in version 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 >>> with np.errstate(invalid="ignore"): ... np.nansum([1, np.nan, np.inf, -np.inf]) # both +/- infinity present np.float64(nan)