← 返回首页
Axis理解
发表时间:2024-01-18 04:25:07
Axis理解

Axis理解

1.Axis

numpy中的轴与直角坐标系中的轴概念类似,轴是沿着行和列的方向的,在numpy中使用axis作为轴的名称。在二维数组中,有两个轴,分别为0轴和1轴。axis 0是沿着行方向的轴,是竖跨行垂直延伸的轴,也就是0轴;axis 1是沿着列方向的轴,是横跨列水平延伸的轴,也就是1轴。

对于一维数组,只有一个轴,为axis 0轴,也就是0轴。

对于三维数组,有三个轴。

import numpy as np
x = np.array([[0,1],[2,3]])
#结果为[2,4]
print(x.sum(axis=0))
#结果为[1,5]
print(x.sum(axis=1))

[2 4]
[1 5]

#用np.max求 axis=0 和 axis=1 两种情况下的最大值
np.random.seed(100)
x = np.random.randint(1,10,size=(3,5))
print(x)
print(x.max(axis=0))
print(x.max(axis=1))

[[9 9 4 8 8]
 [1 5 3 6 3]
 [3 3 2 1 9]]
[9 9 4 8 9]
[9 6 9]

#用 np.delete 在 axis=0 和 axis=1 两种情况下删除元素
#删除第0行
print(np.delete(x,0,axis=0))
print(np.delete(x,0,axis=1))

[[1 5 3 6 3]
 [3 3 2 1 9]]
[[9 4 8 8]
 [5 3 6 3]
 [3 2 1 9]]

#三维数组及多维数组
#生成一个三维数组
y = np.arange(24).reshape(2,2,6)
print(y)
#取最大值
print(y.max(axis=0))
print(y.max(axis=1))
print(y.max(axis=2))

[[[ 0  1  2  3  4  5]
  [ 6  7  8  9 10 11]]

 [[12 13 14 15 16 17]
  [18 19 20 21 22 23]]]
[[12 13 14 15 16 17]
 [18 19 20 21 22 23]]
[[ 6  7  8  9 10 11]
 [18 19 20 21 22 23]]
[[ 5 11]
 [17 23]]

小结:

  1. 最外面的括号代表着 axis=0,依次往里的括号对应的 axis 的计数就依次加1。
  2. 操作方式:如果指定轴进行相关的操作,那么他会使用轴下面的每个直接子元素的第0个,第1个,第2个...分别进行相关的操作。
  3. np.delete是直接删除指定轴下的第几个直接子元素。