理解numpy中的轴(axis)

it2023-03-05  79

按照我目前的理解:

一维数组中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]])这里插入代码片
最新回复(0)