Python-关于轴axis的理解


axis的本质

axis(轴)是编程语言中常见的概念, 它的本质是数组的层级.

例如, 在Python语言中, numpy的array是一个多维(或一维)的数组:

arr = np.array(np.arange(12).reshape(3,4))
print(arr)
"""
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

"""
print(arr.shape)
"""
(3, 4)
"""
  • axis=0, 表示最外层的[], 相应的arr.shape[0]为 3, 最外层数组有3个元素;
  • axis=1, 表示次外层的[], 相应的arr.shape[1]为 4, 这就表示, 在最外层的3个数组元素中, 每个数组元素中又有4个元素。

沿某个axis进行操作

若函数中axis=i, 则沿着第i个下标变化、其余下标都不变的方向进行操作.

以元素下标的形式表示数组arr为:

arr[0][0] arr[0][1] arr[0][2] arr[0][3]
arr[1][0] arr[1][1] arr[1][2] arr[1][3]
arr[2][0] arr[2][1] arr[2][2] arr[2][3]

print(arr)
"""
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
"""
In [16]: arr.sum(axis=0)

Out[16]: array([12, 15, 18, 21])

arr.sum(axis=0)表示沿着第0个下标变化, 其它索引都不变的方向进行求和操作. 即

  • arr[0][0] + arr[1][0] + arr[2][0] = 12
  • arr[0][1] + arr[1][1] + arr[2][1] = 15
  • arr[0][2] + arr[1][2] + arr[2][2] = 18
  • arr[0][3] + arr[1][3] + arr[2][3] = 21

由以上结论, 可以得到二维数组中axis含义的巧记方法:

二维数组中的巧记方法沿方向操作

  • axis=0, 表示第一个索引变变化, 第二个索引不变, 即沿纵向操作
  • axis=1, 表示第二个索引变变化, 第一个索引不变, 即沿横向操作


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM