Python numpy.amax函数方法的使用

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中amax方法的使用。

numpy.amax

numpy.amax(a, axis=None, out=None, keepdims=, initial=, where=)    [source]

返回数组的最大值或沿轴的最大值。

参数 :

a :array_like

输入数据。

axis :None 或 int 或 tuple of ints, 可选

沿其运行的一个或多个轴。

默认情况下,使用拼合的输入。

 1.7.0版中的新功能。 

如果这是一个整数元组,

则在多个轴上选择最大值,

而不是像以前那样在单个轴或所有轴上进行选择。

out :ndarray, 可选

放置结果的备用输出数组。

必须具有与预期输出相同的形状和缓冲区长度。

有关更多详细信息,请参见ufuncs-output-type。

keepdims :bool, 可选

如果将其设置为True,

那么被缩减的轴将在结果中保留尺寸为1的维度。

使用此选项,结果将针对输入数组正确传递。

 如果传递了默认值,

则keepdims不会传递到ndarray子类的amax方法,

但是任何非默认值都会传递。 如果子类的方法未实现keepdims,

则将引发任何异常。

initialscalar, 可选

输出元素的最小值。必须存在以允许在空片上进行计算。

有关详情,请参见reduce。 1.15.0版中的新功能。

where :array_like of bool, 可选

要比较的最大元素。有关详情,请参见reduce。 

1.17.0版中的新功能。

返回值 :

amax :ndarray 或 scalar

最多一个。如果axis为None,则结果为标量值。

如果指定了axis,则结果为维度为a.ndim-1的数组。

Notes

将传播NaN值,即,如果至少一项为NaN,则相应的最大值也将为NaN。要忽略NaN值(MATLAB行为),请使用nanmax。

不要使用amax进行2个数组的逐元素比较; 当a.shape [0]为2时,maximum(a [0],a [1])amax(a,axis = 0)快

例子

>>> a = np.arange(4).reshape((2,2))
>>> a
array([[0, 1],
       [2, 3]])
>>> np.amax(a)           # Maximum of the flattened array
3
>>> np.amax(a, axis=0)   # Maxima along the first axis
array([2, 3])
>>> np.amax(a, axis=1)   # Maxima along the second axis
array([1, 3])
>>> np.amax(a, where=[False, True], initial=-1, axis=0)
array([-1,  3])
>>> b = np.arange(5, dtype=float)
>>> b[2] = np.NaN
>>> np.amax(b)
nan
>>> np.amax(b, where=~np.isnan(b), initial=-1)
4.0
>>> np.nanmax(b)
4.0

您可以使用初始值来计算空切片的最大值,或将其初始化为其他值:

>>> np.max([[-50], [10]], axis=-1, initial=0)
array([ 0, 10])

请注意,初始值用作确定最大值的元素之一,这与默认参数Python的max函数不同,后者仅用于空的可迭代对象。

>>> np.max([5], initial=6)
6
>>> max([5], default=6)
5
推荐阅读
cjavapy编程之路首页