[普通]关于numpy中axis的理解

作者(passion) 阅读(90次) 评论(0) 分类( 程序)

今天在复习PCA的过程中,发现自己对numpy多维数组的“轴”理解的不是很好,借此机会来总结一下。

网上有很多博客都写的是二维数组,axis=0表示第一维度,即行。axis=1表示第二维度,列。但是设计到多维就有点不知所错。

举个网上存在的例子帮助理解:

1
2
3
4
5
6
7
8
9
10
>> data2
array([[[ 0,  1,  2,  3],
        4,  5,  6,  7],
        8,  91011]],
  
       [[12131415],
        [16171819],
        [20212223]]])
>> data2.shape
(2L3L4L)

  下面是不同axis的情况:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
data2.sum(axis=0)
Out[49]:
array([[12141618],
       [20222426],
       [28303234]])
  
  
data2.sum(axis=1)
Out[51]:
array([[12151821],
       [48515457]])
  
data2.sum(axis=2)
Out[52]:
array([[ 62238],
       [547086]])

  

这里红色是axis=0的相加情况,黄色是axis=1,蓝色axis=2

所以如果一个多维数组的 shape 是 (a1, a2, a3, a4), 那么延轴0计算最后的数组shape 是 (a2, a3, a4), 延轴1计算最后的数组shape是 (a1, a3, a4)。

axis =0还是代表shape0,只不过axis=0的一些计算如,np.sum(axis=0)是沿着这个轴计算其他轴的,也就是除了这个轴以外其他轴都会计算


« 上一篇:rtsp流媒体测试地址
« 下一篇:国产AI框架开源也疯狂 从生态看华为MindSpore的危机并存
在这里写下您精彩的评论
  • 微信

  • QQ

  • 支付宝

返回首页
返回首页 img
返回顶部~
返回顶部 img
';