数组的Axis

写在前面
因为对axis的不太了解,给阅读各种代码时带来了各种困扰,因此下定决心决定解决此问题。

根据定义,维度的轴号是数组形状中该维度的索引。 它也是在索引时用于访问该维度的位置。

axis的值是按shape来的,shape=(2,2)时,axis的值有0,1,shape=(3,3,3)时,axis的值有0,1,2,

二维

假设有一个二维数组[[1,2],[3,4]]

In [1]: import numpy as np
#先上一个二维数组
In [3]: x=np.array([[1,2],[3,4]])

In [4]: x
Out[4]:
array([[1, 2],
       [3, 4]])

In [5]: x.shape
Out[5]: (2, 2)
#可以想象成把数组向下压缩(沿着列的方向),取元素之和,4=1+3,6=2+4
In [6]: x.sum(axis=0)
Out[6]: array([4, 6])
#可以想象成把数组向右压缩(沿着行的方向),取元素之和,3=1+2,7=3+4
In [7]: x.sum(axis=1)
Out[7]: array([3, 7])

三维

假设有一个三维数组


In [8]: y=np.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],
   ...:     [24, 25, 26]]])

In [9]: print y
[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]]

 [[ 9 10 11]
  [12 13 14]
  [15 16 17]]

 [[18 19 20]
  [21 22 23]
  [24 25 26]]]
#沿着axis=0,求和
In [10]: y.sum(axis=0)
Out[10]:
array([[27, 30, 33],
       [36, 39, 42],
       [45, 48, 51]])

嗯,图很丑,将就一下,不知道要用什么绘图软件

axis=0,求和

y.sum(axis=0)就相当于把一个3*3*3的立方体向着蓝色的面压缩,变成一个3*3的数组,对应位置的元素求和,再按顺序排列。

#同理,axis=1相当于向着红色的面压缩,变成一个3*3的数组,对应位置的元素求和,再按顺序排列。
In [11]: y.sum(axis=1)
Out[11]:
array([[ 9, 12, 15],
       [36, 39, 42],
       [63, 66, 69]])
#同理,axis=2相当于向着黄色的面压缩,变成一个3*3的数组,对应位置的元素求和,再按顺序排列。
In [12]: y.sum(axis=2)
Out[12]:
array([[ 3, 12, 21],
       [30, 39, 48],
       [57, 66, 75]])

接下来就是四维了

偷个小懒,来个最简单的吧


In [10]: x=np.array([
    ...: [
    ...:     [[1,2],
    ...:     [3,4]]
    ...: ],
    ...: [
    ...:     [[5,6],
    ...:     [7,8]]
    ...: ]
    ...:
    ...: ])

In [11]: x
Out[11]:
array([[[[1, 2],
         [3, 4]]],


       [[[5, 6],
         [7, 8]]]])
In [12]: x.shape
Out[12]: (2, 1, 2, 2)

怎么理解呢,画出四维,臣妾实在是做不到呀^ _ ^,粗暴一点理解为两个三维的杂交,交。。也就是两个1*2*2的立方体叠加吧,再上一张丑图:

憋笑
In [13]: x.sum(0)
Out[13]:
array([[[ 6,  8],     
        [10, 12]]])
#压缩后是三维哦,axis=0时对应的是shape[0]
In [14]: x.sum(0).shape
Out[14]: (1, 2, 2)
#之后又可以看做是退化了,每一个二维的数组对应一个立方体的操作
In [15]: x.sum(1)  #向着蓝面(channel方向),shape[1]
Out[15]:
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])

In [16]: x.sum(2)  #向着红面(column方向),shape[2]
Out[16]:
array([[[ 4,  6]],

       [[12, 14]]])

In [17]: x.sum(3)  #向着黄面方向(row方向),shape[3]
Out[17]:
array([[[ 3,  7]],

       [[11, 15]]])

四维的axis=0好像还是有点烧脑,就相当于在保持立方体的形状时,各个立方体超时空融合吧,具体的就脑补吧。

#再来一个例子吧,2个2*1*1的立方体
In [25]: y=np.array([
    ...: [[[1]],[[2]]],
    ...: [[[3]],[[4]]]
    ...: ])

In [26]: y.shape
Out[26]: (2, 2, 1, 1)

In [27]: y.sum(0)
Out[27]:
array([[[4]],

       [[6]]])

最后吐槽一下自己的丑图,愿推荐一个好用的绘图软件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 2,555评论 1 13
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,219评论 0 5
  • 作者按: 其实这篇文章完成主体部分是在去年年底,为了使文章更加严谨,同时打算绘制一些配图,所以一直没有发布,之后忙...
    六合外阅读 9,520评论 5 33
  • 微信小程序给我们提供了一个很好的开发平台,可以用于展现各种数据和实现丰富的功能,本篇随笔介绍微信小程序结合后台数据...
    伍华聪_开发框架阅读 2,015评论 0 50
  • 三十岁的人了,应该长点记性了,不爱了就是不爱了,奢求什么呢,每天相安无事就很好了,能过一天算一天呗
    我是安妮妈咪阅读 208评论 0 0