函数用于计算数组中的最大值,同时忽略任何 NaN(Not a Number)值。它的主要作用是在处理包含 NaN 值的数据时,能够正确地计算最大值,而不会因为 NaN 值的存在而影响结果。
函数定义
def nanmax(a, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue): """ 返回数组中的最大值,忽略任何 NaN 值。当遇到全 NaN 切片时,会发出 `RuntimeWarning` 并返回 NaN。 参数 ---------- a : array_like 包含要计算最大值的数字的数组。如果 `a` 不是数组,会尝试进行转换。 axis : {int, tuple of int, None}, optional 计算最大值的轴或轴的元组。默认是计算展平数组的最大值。 out : ndarray, optional 放置结果的备用输出数组。默认是 `None`;如果提供,它必须具有与预期输出相同的形状,但类型会在必要时进行转换。 keepdims : bool, optional 如果设置为 True,减少的轴会作为大小为一的维度保留在结果中。使用此选项,结果将正确地与原始 `a` 进行广播。 initial : scalar, optional 输出元素的最小值。必须存在以允许对空切片进行计算。 where : array_like of bool, optional 要比较最大值的元素。 """
返回值
nanmax
: ndarray 返回与a
形状相同的数组,指定轴被移除。如果a
是 0 维数组,或者axis
是 None,则返回一个 ndarray 标量。返回的类型与a
相同。
相关函数
nanmin
: 计算数组中最小值,忽略任何 NaN 值。amax
: 计算数组中最大值,传播任何 NaN 值。fmax
: 元素级别计算两个数组的最大值,忽略任何 NaN 值。maximum
: 元素级别计算两个数组的最大值,传播任何 NaN 值。isnan
: 显示哪些元素是 NaN。isfinite
: 显示哪些元素既不是 NaN 也不是无穷大。
注意事项
NumPy 使用 IEEE 标准的二进制浮点数算术(IEEE 754)。这意味着 NaN 不等同于无穷大。正无穷大被视为一个非常大的数字,而负无穷大被视为一个非常小的(即负的)数字。
如果输入是整数类型,则该函数等同于 np.max
。
示例
>>> a = np.array([[1, 2], [3, np.nan]]) >>> np.nanmax(a) 3.0 >>> np.nanmax(a, axis=0) array([3., 2.]) >>> np.nanmax(a, axis=1) array([2., 3.]) # 当存在正无穷大和负无穷大时: >>> np.nanmax([1, 2, np.nan, -np.inf]) 2.0 >>> np.nanmax([1, 2, np.nan, np.inf]) inf
通过这些信息,可以更好地理解 numpy.nanmax
函数的用途和用法。