zoukankan      html  css  js  c++  java
  • NumPy对于轴(axis)和秩(rank)的理解

     

     
    • 轴(axis):保护数据的维度,数组最外围的维度axis=0
      • 矩阵(二维数组)
        • 第一轴(axis=0)是矩阵的列操作
        • 第二轴(axis=1)是矩阵的行操作
      • 三维数组
        • 第三轴(axis=2)为图像矩阵的通道
    • 秩(rank):轴的数量,即数组的维度

    上面的看不懂不要急,看看例子就会懂了

    np.sum(array, axis=None)函数表示对数组array进行求和(默认axis=None),可通过修改参数axis达到对数组array不同轴的操作。
    eg:np.sum(a2,axis=0)对数组a2的第一轴(axis=0)求和

    • 对于二维数组a2(3,4)

    a2=np.arange(12).reshape(3,4)
    a2
    Out: 
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    
    np.sum(a2,axis=0)
    Out: array([12, 15, 18, 21])
    # ps:12=0+4+8, 15=1+5+9, 18=2+6+10, 21=3+7+11
    
    np.sum(a2,axis=1)
    Out: array([ 6, 22, 38])
    # ps:6=0+1+2+3, 22=4+5+6+7, 38=8+9+10+11
    

    总结一下

    • axis=0的结果为(axis, 4) 大小为四的一维数组,值为(0, i) + (1, i) + (2, i)
    • axis=1的结果为(3, axis) 大小为三的一维数组,值为(i, 0) + (i, 1) + (i, 2) + (i, 3)
      它的秩的值为2(二维数组,共有两个轴)
    • 对于三维数组 a(2,3,4)

    array([[[ 0,  1,  2,  3],
            [ 4,  5,  6,  7],
            [ 8,  9, 10, 11]],
    
           [[12, 13, 14, 15],
            [16, 17, 18, 19],
            [20, 21, 22, 23]]])
    np.sum(a,axis=0)
    # 对a数组第一轴求和
    Out: 
    array([[12, 14, 16, 18],
           [20, 22, 24, 26],
           [28, 30, 32, 34]])
    # ps:12=0+12,14=1+13,16=2+14,18=3+15
    #    20=4+16,...
    #    28=8+28, ...
    np.sum(a,axis=1)
    # 对a数组第二轴求和
    Out: 
    array([[12, 15, 18, 21],
           [48, 51, 54, 57]])
    # ps:12= 0+ 4+ 8, 15= 1+ 5+ 9, 18= 2+ 6+10, 21= 3+ 7+11
    #    48=12+16+20, ...
    np.sum(a,axis=2)
    Out: 
    array([[ 6, 22, 38],
           [54, 70, 86]])
    # ps: 6= 0+ 1+ 2+ 3, 22= 4+ 5+ 6+ 7, 38= 8+ 9+10+11
    #    54=12+13+14+15, ...
    

    总结一下

      • axis=0的结果为(axis, 3, 4) 三行四列的矩阵,值为(0, i, j) + (1, i, j)
      • axis=1的结果为(2, axis, 4) 二行四列的矩阵,值为(i, 0, j) + (i, 1, j) + (i, 2, j)
      • axis=2的结果为(2, 3, axis) 二行三列的矩阵,值为(i, j, 0) + (i, j, 1) + (i, j, 2) + (i, j, 3)
        它的秩的值为3(共有三个轴,维度为三)
  • 相关阅读:
    Lambda
    Guava
    创建数据库时报错 'str' object has no attribute 'decode'
    服务器并发测试(jmeter)
    Mosquitto 创建用户自动输入密码
    menuconfig 语法与用法
    Django操作mongodb
    mqtt mosquitto 安装与使用
    python 使用mongodb数据库
    djangorestframework token 认证
  • 原文地址:https://www.cnblogs.com/vincent-sh/p/12730523.html
Copyright © 2011-2022 走看看