zoukankan      html  css  js  c++  java
  • Python之NumPy(axis=0/1/2...)的透彻理解

    https://blog.csdn.net/sky_kkk/article/details/79725646

    numpy中axis取值的说明
    首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维数越高,则axis可取的值越大,数组n维时,axis=0,1,…,n。为了方便下面的理解,我们这样看待:在numpy中数组都有着[]标记,则axis=0对应着最外层的[],axis=1对应第二外层的[],以此类推,axis=n对应第n外层的[]。
    下面开始从axis=0,axis=1这两个例子开始,深入透彻的理解numpy中axis的用法。
    axis = 0表示对最外层[]里的最大单位块做块与块之间的运算,同时移除最外层[]:
    a= np.array([1,2,3])   
    a.sum(axis = 0)
    >>>6
    123
    因为只有一层[],所以直接对这一层里的最大单位快1,2,3做运算;
    做完加法后本应是[6],但是移除最外层[]后,[]不存在了,所以返回的是6。
    a= np.array([[1,2],[3,4]]) 
    a.sum(axis = 0)
    >>>array([4, 6])
    123
    有两层[],最外层[]里的最大单位块分别为[1,2],[3,4],对这两个单位块做块与块之间的运算,[1,2]+[3,4] = [4, 6];
    做完加法后本应是[[4, 6]],但是移除最外层[]后,原来的两层[]变成一层[],所以返回结果为 [4, 6]。
    np.array([[[1,2],[3,4]],[[11,12],[13,14]]])
    a.sum(axis = 0)
    >>>array([[12, 14], [16, 18]])
    123
    有三层[],最外层[]里的最大单位块分别为[[1,2],[3,4]],[[11,12],[13,14]],对这两个单位块做块与块之间的运算,[[1,2],[3,4]]  +  [[11,12],[13,14]]  = [[12, 14], [16, 18]];
    做完加法后本应是[[[12, 14], [16, 18]]],但是移除最外层[]后,原来的三层[]变成两层[],所以返回结果为[[12, 14], [16, 18]];
    axis= 1表示对第二外层[]里的最大单位块做块与块之间的运算,同时移除第二外层[]:
    a= np.array([1,2,3])   
    a.sum(axis = 1)
    >>>ValueError: 'axis' entry is out of bounds
    123
    因为只有一层[],axis取值只有一个,为0.
    a= np.array([[1,2],[3,4]]) 
    a.sum(axis = 1)
    >>>array([3, 7])
    123
    有两层[],第二外层[]里的最大单位块有两组(因为有两个第二外层[]),第一组是1,2,第二组是3,4,分别对这两个单位块做块与块之间的运算,第一组结果为1+2=3,第二组结果为3+4=7;
    做完加法后本应是[[3],[7]],但是**移除第二外层[]**后,原来的两层[]变成一层[],所以返回结果为[3, 7]。
    np.array([[[1,2],[3,4]],[[11,12],[13,14]]])
    a.sum(axis = 1)
    >>>array([[ 4,  6], [24, 26]])
    123
    有三层[],第二外层[]里的最大单位块有两组(因为有两个第二外层[]),第一组是[1,2],[3,4],第二组是[11,12],[13,14],分别对这两个单位块做块与块之间的运算,第一组结果为[1,2]+[3,4] = [ 4,  6],第二组结果为[11,12]+[13,14] = [24, 26]
    做完加法后本应是[[[ 4,  6]], [[24, 26]]],但是**移除第二外层[]**后,原来的三层[]变成两层[],所以返回结果为[[ 4,  6], [24, 26]]
    axis = 3,4,5也如此分析
    看懂了这些说明,相信你对axis已经有了深入的理解,以后再也不用怕高维数组关于axis的运算了!

  • 相关阅读:
    关于lua扩展库lpack的使用指南
    mac下安装LuaSocket
    lua_の_进阶总结之基础篇
    minicap_工具使用
    AutoSense脚本日志总结(微信搜索【水勺子】公众号获取详情)
    六:Spring Security 中使用 JWT
    五:Spring Security 中的角色继承问题
    四:Spring Security 登录使用 JSON 格式数据
    二:整合Spring Security
    三:Spring Security 登录添加验证码
  • 原文地址:https://www.cnblogs.com/cupleo/p/11330373.html
Copyright © 2011-2022 走看看