numpy数组的维度操作和axis的对应关系

 1 import numpy as np
 2 np.random.seed(123)
 3 a = np.random.randint(0,5,[3,3,2])
 4 print(a)
 5 
 6 print(a[-1,:,:])   #   -1  就是  2

7 #Output: 8 9 [[[2 4] 10 [2 1] 11 [3 2]] 12 13 [[3 1] 14 [1 0] 15 [1 1]] 16 17 [[0 0] 18 [1 3] 19 [4 0]]] 20 [[0 0] 21 [1 3] 22 [4 0]]

axis = 0对应数组最外层,将内层只看成各有一维,即[, , ,] 最外层元素的贯穿

axis=1 对应数组次外层,即[ [], [], []],只分别关注次层,次外层元素的 贯穿

axis = 2 对应数组内层,即[[[]],[[]],[[]]], 最内层元素的 贯穿

axis = -1 对应数组最内层,等价于axis = 2 ,即最内层元素的贯穿处理。

axis = -1 常见用于图像数据增加一维, np.expand_dims(data ,axis = -1) →  [ , , , 1] 

a.sum(axis = 0)  #最低维度,将各层的元素按最外层维度对应相加    2+3+0, 4+1+0
1 #output:
2 array([[5, 5],
3        [4, 4],
4        [8, 3]])

a.sum(axis = 1)# 将自身的每层的元素,在层内对应的倒数第二维度分别相加   2+2+3, 4+1+2
1 #output:
2 array([[7, 7],
3        [5, 2],
4        [5, 3]])

a.sum(axis = 2)# 将每层最内层的元素分别相加   4+2, 3+1,3+2
1 #output:
2 array([[6, 3, 5],
3        [4, 1, 2],
4        [0, 4, 4]])

原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725249.html