在numpy库中,axis轴的问题比较重要,不同的值会得到不同的结果,为了便于理解,特此将自己的理解进行梳理
为了梳理axis,借助于sum函数进行!
a = np.arange(27).reshape((3,3,3)) print(a) # [[[ 0 1 2] # [ 3 4 5] # [ 6 7 8]] # # [[ 9 10 11] # [12 13 14] # [15 16 17]] # # [[18 19 20] # [21 22 23] # [24 25 26]]] b = np.sum(a, axis=0) print(b) # [[27 30 33] # [36 39 42] # [45 48 51]] c = np.sum(a, axis=1) print(c) # [[ 9 12 15] # [36 39 42] # [63 66 69]] c = np.sum(a, axis=2) print(c) # [[ 3 12 21] # [30 39 48] # [57 66 75]]
从该内容上总结
1 - axis 的取值必须与 a.shape() 的 len() 值相对应,当axis的值超过时会报错,比如该段代码中如果axis = 3 ,则会报错。
2 - a.shape() 的值是从外向里算的;也即,
第一个方括号 [ ] 中的 子方括号 [ ] 个数,子方括号中有 3 个,计为 3 ;axis = 0 降其子维,运算子括号 [ ] 内容
每个子方括 [ ] 中均有 3 个子方括 [ ] ,计为 3 ;axis = 1 降其子维,运算其子括号 [ ] 内容,
每个子方括 [ ] 中有 3 个元素,计为 3 ; axis = 2 降其子维,其括号内进行运算
3 - 每计算求和一次,要降一维。消灭子维。