max,amax,nanmax,fmax,maximum的区别 2018/11/28
===================================================================
1.函数
np.max()是np.amax的别名
np.amax(a, axis=None, out=None, keepdims=<no value>, initial=<no value>) 沿给定轴的数组的最大值,传播任何NaN。
np.nanmax(a, axis=None, out=None, keepdims= < novalue >): 沿给定轴的数组的最大值,忽略任何NaN。
np.fmax(*args, **kwargs) : 元素最多两个数组,忽略任何NaN。
np.maximum(*args, **kwargs) :元素最多两个数组,传播任何NaN。
===================================================================
2.1.说明
np.amax/np.max,np.nanmax:用于单个数组顺序统计;计算数组中所有元素的最大值,或者沿着数组的轴
np.maximum,np.fmax: 用于两个数组的元素比较并计算其元素最大值;一个阵列可以向另一个阵列广播
2.2.np.max是np.amax的别名
np.max.__name__# 'amax'
np.max is np.amax# True
np.amax # <function numpy.core.fromnumeric.amax>
np.max # <function numpy.core.fromnumeric.amax>
2.3.元素功能是np.ufunc(通用功能),这意味着它们具有普通Numpy功能所不具备的一些特殊属性。
type(np.maximum)# <class 'numpy.ufunc'>
type(np.fmax) # <class 'numpy.ufunc'>
type(np.max) # <class 'function'>
type(np.nanmax) # <class 'function'>
# 例如,您可以计算数组(或数组的特定轴)的累积最大值:
d = np.array([2, 0, 3, -4, -2, 7, 9])
np.maximum.accumulate(d)# array([2, 2, 3, 3, 3, 7, 9])
# np.max模仿np.maximum
np.maximum.reduce(d)# 9
np.max(d) # 9
4.最后,相同的规则适用于四个最小相关函数:
np.amin/np.min,np.nanmin;
np.minimum,np.fmin
===================================================================
5.实例
a = np.arange(4).reshape((2,2))# array([[0, 1],[2, 3]])
np.amax(a) # 扁平数组的最大值 # 3
np.amax(a, axis=0) # array([2, 3])
np.amax(a, axis=1) # array([1, 3])
b = np.arange(5, dtype=float)
b[2] = np.NaN
np.amax(b) # nan
np.nanmax(b) # 4
a = np.array([[1, 2], [3, np.nan]])
np.nanmax(a) # 3
np.nanmax(a, axis=0) # array([ 3., 2.])
np.nanmax(a, axis=1) # array([ 2., 3.])
np.nanmax([1, 2, np.nan, np.NINF])# 2
np.nanmax([1, 2, np.nan, np.inf]) # inf
np.fmax([2, 3, 4], [1, 5, 2]) # array([ 2., 5., 4.])
np.fmax(np.eye(2), [0.5, 2]) # array([[ 1. , 2. ],[ 0.5, 2. ]])
np.fmax([np.nan, 0, np.nan],[0, np.nan, np.nan])# array([ 0., 0., NaN])
np.fmax(np.Inf, 1) #inf
np.maximum([2, 3, 4], [1, 5, 2]) # array([2, 5, 4])
np.maximum(np.eye(2), [0.5, 2]) # broadcasting # array([[ 1. , 2. ],[ 0.5, 2. ]])
np.maximum([np.nan, 0, np.nan], [0, np.nan, np.nan])# array([ NaN, NaN, NaN])
np.maximum(np.Inf, 1) # inf