numpy多维数组中的轴

时间:2014-06-18 08:58:02

标签: python numpy

我没有理解numpy中多维数组中的轴之间的差异。你能解释一下吗? 特别是我想知道numpy三维数组中的axis0,axis1和axis2在哪里。 为什么? 感谢。

2 个答案:

答案 0 :(得分:4)

最简单的方法是举例:

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

Link有关使用多维数据数组的优秀教程

答案 1 :(得分:0)

可以通过遍历n维数组来命名轴,从数组的外部一直到内部,直到我们到达实际的标量元素为止。 最外面的尺寸将始终为轴0,最里面的尺寸(标量元素)将始终为轴n-1。 以下链接在想象和实现NumPy轴时将更加有用- How does NumPy's transpose() method permute the axes of an array?

作弊代码1:当将NumPy sum函数与axis参数一起使用时,指定的轴就是折叠的轴。

作弊代码2:当将axis参数与np.concatenate()函数一起使用时,axis参数定义了沿其堆叠数组的轴。