在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 - 每计算求和一次,要降一维。消灭子维。