理解numpy中的axis

2021-09-29 09:41:37 字數 2957 閱讀 9803

對於m個元素一維陣列a,因為只有乙個軸,所以axis只能為0,和預設值效果相同,觀察的是0軸上0,1,...i,...,m點對應的元素。產生的新集合就乙個元素。

舉例:

對於mxn的二維陣列

a,,...,,...,},axis可以取值0或1。

axis=0: 相當於平面座標的y軸,變化的是"行"。即觀察每一列不同行的元素。產生的新集合,其元素的數量等於列數。

axis=1: 相當於平面座標的x軸,變化的是"列",即觀察每一行不同列的元素。產生的新集合,其元素的數量等於行數。

axis為預設值,對全體成員進行不分組觀察。產生的新集合就乙個元素。

舉例:對於三維陣列

我本人不常用到三維陣列,我想象有一本書,書中有很多頁,每一頁上按行列排列了很多文字,則二維陣列可以具象成文字在頁面上的座標。比如上述的3x5陣列,就可以描述3行5列的15個文字,每個元素表示了該文字的編碼。比如上例:a13=13,表示在第2行第4列有個編碼為13的文字。

三維陣列呢,可以視為增加了一維頁數。比如下列的2x3x5陣列,我就視他為:有一本書,該書由2頁組成,每頁有3行5列,陣列元素表示了該位置文字的編碼。如下例:a123=23,表示在第2頁第3行第4列有個編碼為23的文字。

有了上述認識,就便於對axis的理解。

axis=0: 頁面軸,變化的是"頁",即先固定行列位置,再觀察每一頁該位置上文字的編碼。產生的新集合為行數x列數。

axis=1: y軸,變化的是"行"。即先固定頁和列,再觀察該頁該列不同行的元素。產生的新集合為頁數x列數。

axis=2: x軸,變化的是"列",即先固定頁和行,再觀察該頁該行不同列的元素。產生的新集合為頁數x行數。

axis為預設值,對全體成員進行不分組觀察。產生的新集合就乙個元素。

下面檢驗一下學習成果。

題:對於陣列a=

||  100,     1,      2,       3, 2104|  |    0,3101, 102, 103, 104||    || 1000,1001,1002,1003,1004|       |1100,1101,1102,1103,1104|| 

||    10,  111,    12, 3013,    14|  |3010,  11, 112, 113,  114||    || 1010, 1011,1012,1013,1014|       |1110,1111, 1112,1113,1114||

||3120,    21,    22,   123,    24|  | 120, 121,122,  23,3114||    || 1020, 1021,1022,1023,1024|      | 1120,1121,1122, 1123,1124||

|| 2000,2001,2002,2003,2004|  |2100,2101,2102,2103,    4||  ||3000,3001,3002,3003,3004|   |3100, 101,3102,3103,3104|| 

|| 2010,2011,2012,2013,2014|  |2110,2111,2112,2113,2114||    || 110,3011,3012,  13,3014|   |3110,3111, 3112,3113,  124||

|| 2020,2021,2022,2023,2024|  |2120,2121,2122,2123,2124||   ||3020,3021,3022,3023,3024|  |  20,3121,3122,3123,3124||

進行axis分析。

分析過程:

該陣列為4x2x3x5的4維陣列,相當於乙個書架上有4冊書,每冊書有2頁,每頁有3行,每行有5列。例如第3冊書第1頁第2行第4列的文字編碼為2013。

axis=0: 冊數軸,變化的是"冊",即先固定頁、行、列,再觀察每一冊該頁該行該列的文字編碼。產生新的集合為頁數x行數x列數。例如求最大值的新集合的第乙個元素就是求每冊書的第1頁第1行第1列的最大值=max(100,1000,2000,3000)=3000

axis=1: 頁面軸,變化的是頁,即先固定冊、行、列,再觀察每一頁該冊該行該列的文字編碼。產生的新集合為冊數x行數x列數。例如求最大值的新集合的第乙個元素就是求第1冊書的各頁的第乙個字的編碼最大值=max(100,0)=100

axis=2: y軸,變化的是"行"。即先固定冊、頁、列,再觀察該冊該頁該列不同行的文字編碼。產生的新集合為冊數x頁數x列數。例如求最大值的新集合的第乙個元素就是求第1冊書第1頁第1列的各行字的編碼最大值=max(100,10,3120)=3120

axis=3: x軸,變化的是"列",即先固定冊、頁、行,再觀察該冊該頁該行不同列的文字編碼。產生的新集合為冊數x頁數x行數。例如求最大值的新集合的第3個元素就是求第1冊書第1頁第3行的各列字的編碼最大值=max(3120,21,22,123,24)=3120

axis為預設值,對全體成員進行不分組觀察。產生的新集合就乙個元素。

拓展:5維陣列:書架數x冊數x頁數x行數x列數

6維陣列:閱覽室數x書架數x冊數x頁數x行數x列數

7維陣列:圖書館數x閱覽室數x書架數x冊數x頁數x行數x列數

numpy中axis的通俗理解

numpy中的axis與shape有關,shape為乙個tuple,這個tuple的index即為所在的axis。例如乙個ndarray形狀為 4,3,2 則4對應的axis為0,3對應的axis為1,2對應的axis為2。import numpy as np x np.arange 24 resh...

Numpy中axis我的理解

以前我理解axis 0代表行,axis 1代表列 但是這種含義在函式size 和max 中恰恰相反 其實不是這樣的,我們回到單詞axis本身,它的意思是 軸 沒錯軸就是代表乙個方向,像x軸,y軸,如圖所示 axis 0代表的就是x軸方向 axis 1代表的就是y軸方向 這樣函式size 和max 就...

numpy中的axis(軸的理解)

沿著axis指定的軸進行相應的函式操作。如果不知道axis,則把結構體展開成一維,然後再開始計算 import numpy as np print array x x 1,2,3 5,1,2 x np.array x print x print shape x print x.shape print...