• 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, 表示第二个索引变变化, 第一个索引不变, 即沿横向操作
  • 相关阅读:
    Math Jax开源数学编辑器的使用
    阿里云pai项目使用说明
    tomcat管理授权:tomcat-users.xml
    NoSQLBooster for MongoDB的基本使用
    IDEA的配置文件访问
    task
    Netty基础点滴
    二星权限树的设计与实现
    easyui实现树形菜单Tab功能、layout布局
    如何用Dome4j(2.2.1)创建Xml
  • 原文地址:https://www.cnblogs.com/monteyang/p/13091387.html
Copyright © 2020-2023  润新知