我不理解NumPy多维数组中轴的区别。你能给我解释一下吗?特别是,我想知道在NumPy三维数组中,axis0、axis1和axis2分别代表什么?为什么要这样分别呢?
最简单的方法是通过示例:
In [8]: x = np.array([[1, 2, 3], [4,5,6],[7,8,9]], np.int32)
In [9]: x
Out[9]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype=int32)
In [10]: x.sum(axis=0) # sum the columns [1,4,7] = 12, [2,5,8] = 15 [3,6,9] = 18
Out[10]: array([12, 15, 18])
In [11]: x.sum(axis=1) # sum the rows [1,2,3] = 6, [4,5,6] = 15 [7,8,9] = 24
Out[11]: array([ 6, 15, 24])
轴 0 是 列,而 轴 1 是 行。
在三维数组中:
In [26]: x = np.array((((1,2), (3,4) ), ((5,6),(7,8))))
In [27]: x
Out[27]:
array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
In [28]: x.shape # dimensions of the array
Out[28]: (2, 2, 2)
In [29]: x.sum(axis=0)
Out[29]:
array([[ 6, 8], # [1,5] = 6 [2,6] = 8 [3,7] = 10 [4, 8] = 12
[10, 12]])
In [31]: x.sum(axis=1)
Out[31]:
array([[ 4, 6], # [1,3] = 4 [2,4] = 6 [5, 7] = 12 [6, 8] = 14
[12, 14]])
In [33]: x.sum(axis=2) # [1, 2] = 3 [3, 4] = 7 [5, 6] = 11 [7, 8] = 15
Out[33]:
array([[ 3, 7],
[11, 15]])
In [77]: x.ndim # number of dimensions of the array
Out[77]: 3
链接提供了一个有关使用多维数据数组的良好教程。
x[0][0][1]
等方式访问特定元素。 - Padraic Cunninghamx.sum(axis=0)
是 x[sum][*][*]
,x.sum(axis=1)
是 x[*][sum][*]
,x.sum(axis=2)
是 x[*][*][sum]
。 - Bálint Sass