为了完整,NumPy中有四个与最大值有关的函数。它们分为两类:
np.amax/np.max、np.nanmax:用于单个数组的顺序统计量np.maximum、np.fmax:用于对两个数组进行逐元素比较I. 用于单个数组的顺序统计量NaNs传播器np.amax/np.max及其忽略NaN的对应函数np.nanmax。
np.max只是np.amax的别名,因此它们被视为一个函数。
>>> np.max.__name__
'amax'
>>> np.max is np.amax
True
np.max 会传播NaN值,而 np.nanmax 则会忽略NaN值。
>>> np.max([np.nan, 3.14, -1])
nan
>>> np.nanmax([np.nan, 3.14, -1])
3.14
II. 用于逐元素比较两个数组的函数
np.maximum与其忽略NaN值的对应函数np.fmax可以处理NaN值。
这两个函数都需要将要与之比较的两个数组作为第一个和第二个位置参数。
# x1 and x2 must be the same shape or can be broadcast
np.maximum(x1, x2, /, ...);
np.fmax(x1, x2, /, ...)
np.maximum会传播NaN值,而np.fmax会忽略NaN值。
>>> np.maximum([np.nan, 3.14, 0], [np.NINF, np.nan, 2.72])
array([ nan, nan, 2.72])
>>> np.fmax([np.nan, 3.14, 0], [np.NINF, np.nan, 2.72])
array([-inf, 3.14, 2.72])
逐元素函数是np.ufunc(通用函数),这意味着它们具有一些常规Numpy函数没有的特殊属性。
>>> type(np.maximum)
>>> type(np.fmax)
>>> #---------------#
>>> type(np.max)
>>> type(np.nanmax)
最后,相同的规则适用于四个minimum相关函数:
np.amin/np.min、np.nanmin;
以及np.minimum、np.fmin。