np.max(a, axis=None, out=None, keepdims=False)
- 求序列的最值
- 最少接收一个参数
- axis:默认为列方向,即axis=0
一般为二维数组,用来表示行和列的信息:
>>> import numpy as np
>>> z = np.array([[1, 2, 3], [4, 5, 6]])
>>> z[0] # the first element of z is a 1D array
array([1, 2, 3])
>>> z[1] # the second element of z is also a 1D array
array([4, 5, 6])
>>> z[0, 0] # the element at row 0, column 0
1
>>> z[1, 2] # the element at row 1, column 2
6
1.当axis=0和axis=1时
这种情况是较为一般(普通)的情况:
- 当axis=0时表示取每一列的最大值:
>>> import numpy as np
>>> z = np.array([[1, 2, 3], [4, 5, 6]]) # array pictured above
>>> np.max(z, axis=0)
array([4, 5, 6]) # maximum along each 1D array
# parallel to axis 0
- 当axis=1时表示取每一行的最大值:
>>> np.max(z, axis=1)
array([3, 6]) # maximum along each 1D array
# parallel to axis 1
在Python环境中运行一下,可以很直观的看出这两个参数的作用:
2.当axis=2时(特殊情况)
参数axis=2时属于特殊情况,网上也很少有相关的资料说明,所以特此写篇新博客在这里解释一下。
如果说之前当axis=0或1时,对数组的操作属于二维空间上的操作,那么当axis=2的时候就属于三维空间上的操作了。
可以想象一下,之前的取行或者列的最大值是在x轴和y轴上进行运算,现在又新增加了一个z轴,相当于三维空间坐标系xOyOz。
那么,
- 当axis=0的时候表示取上下两维的最大值:
>>> z = np.arange(24).reshape(2,3,4) # array pictured above
>>> np.max(z, axis=0)
array([[12, 13, 14, 15], # maximum along each
[16, 17, 18, 19], # 1D array parallel
[20, 21, 22, 23]]) # to axis 0
- 当axis=1的时候表示取上下两维列的最大值:
>>> np.max(z, axis=1) # maximum along each
array([[ 8, 9, 10, 11], # 1D array parallel
[20, 21, 22, 23]]) # to axis 1
- 当axis=2的时候表示取上下两维行的最大值:
>>> np.max(z, axis=2) # maximum along each
array([[ 3, 7, 11], # 1D array parallel
[15, 19, 23]]) # to axis 2
如图所示: