按照我目前的理解:
一维数组中axis=0很特殊,是沿着行的轴。
二维数组中axis=0是沿着列向下的轴。axis=1是沿着行向右的轴。
多维数组中 axis=0是维度,axis=1是沿着列向下的轴,axis=1是沿着行向右的轴。
axis不会大于等于3。
举例,在spyder里
在In [117]: a
Out[117]:
array([[36, 3, 5, 11],
[35, 32, 31, 5],
[12, 35, 6, 15]])
In [118]: np.sum(a)
Out[118]: 226
In [119]: np.sum(a, axis=1) # axis=1,计算每行的值,相当于对行进行折叠
Out[119]: array([ 55, 103, 68])
In [120]: np.sum(a, axis=0) # axis=0,计算每列的值,对列进行折叠。
Out[120]: array([83, 70, 42, 31])
In [122]: a=np.random.randint(3,27,(2,3,4))
In [123]: a
Out[123]:
array([[[22, 7, 26, 7],
[12, 18, 16, 24],
[14, 19, 18, 20]],
[[12, 6, 14, 13],
[23, 13, 7, 8],
[ 7, 25, 22, 24]]])
In [124]: np.sum(a,axis=2) # axis=2,计算每个维度每行的值,折叠每行
Out[124]:
array([[62, 70, 71],
[45, 51, 78]])
In [125]: np.sum(a,axis=0) # axis=0,计算两个维度相加的值。
Out[125]:
array([[34, 13, 40, 20],
[35, 31, 23, 32],
[21, 44, 40, 44]])
In [126]: np.sum(a,axis=1) # axis=1,计算每个维度每一列相加的值,折叠每列
Out[126]:
array([[48, 44, 60, 51],
[42, 44, 43, 45]])
In [130]: a #3维4行2列
Out[130]:
array([[[17, 10],
[ 4, 16],
[17, 12],
[ 6, 10]],
[[16, 21],
[23, 25],
[25, 8],
[ 6, 4]],
[[23, 13],
[ 6, 25],
[22, 5],
[22, 8]]])
In [131]: np.sum(a,axis=0) #计算每个维度相加的值
Out[131]:
array([[56, 44],
[33, 66],
[64, 25],
[34, 22]])
In [132]: np.sum(a,axis=1) #计算维度内的列值
Out[132]:
array([[44, 48],
[70, 58],
[73, 51]])
In [133]: np.sum(a,axis=2) #计算维度内的行值
Out[133]:
array([[27, 20, 29, 16],
[37, 48, 33, 10],
[36, 31, 27, 30]])这里插入代码片