高维数组 np.max() 指定轴向的用法

最近使用 max() 对高维的numpy 数组进行求最大值时遇到了一点问题,记录一下。

用法

对于 二维数组 ,能够指定轴向输出需要的最大值
指定 axis= 0 会返回 的最大值
指定 axis= 1 会返回 的最大值

代码实例:

import numpy as np

a= np.arange(10).reshape((2,5))

a_amx= np.max(a)  # 直接返回数组的最大值
c_max= np.max(a, axis= 0)  # 返回 列 的最大值
r_max= np.max(a, axis= 1)  # 返回 行 的最大值

注意区别二维数组本身的轴向,二维数组本身的轴向如下图所示 :
(0 轴向代表行 ,1 轴向代表列)
二维数组本身的轴向
对于 三维数组 ,可以理解为指定轴向的切面的最大值
三维数组本身的轴向 如下图所示:
三维数组本身的轴向
在使用 np.max() 指定轴向进行计算时,轴向会发生变化。如下图所示
(变化为 1 轴向代表二维数组的列,2 轴向代表二维数组的行)
变化后的轴向
代码实例:

import numpy as np

array = np.array([[[1,18],[3,4],[5,6],[7,8]],
                  [[17,10],[11,12],[13,14],[15,16]],
                  [[9,2],[19,20],[21,22],[23,24]]
                  ])
                  
print(np.max(array, axis=0))  # 返回 0 轴向的最大值
print(np.max(array, axis=1))  # 返回 1 轴向的最大值
print(np.max(array, axis=2))  # 返回 2 轴向的最大值                  

输出结果为:

[[17 18]
 [19 20]
 [21 22]
 [23 24]]
 
[[ 7 18]
 [17 16]
 [23 24]]
 
[[18  4  6  8]
 [17 12 14 16]
 [ 9 20 22 24]]

当指定的 axis 的值为元组时,返回的是改元组构成的各个面(二维数组)的最大值
代码实例:

array = np.array([[[1,18],[3,4],[5,6],[7,8]],
                  [[17,10],[11,12],[13,14],[15,16]],
                  [[9,2],[19,20],[21,22],[23,24]]
                  ])
                  
print(np.max(array, (1, 2)))
print(np.max(array, (2,0)))
print(np.max(array, (0, 1)))                  

得到的结果为:

[18 17 24]

[18 20 22 24]

[23 24]

猜你喜欢

转载自blog.csdn.net/qq_41071191/article/details/121592196