Python-關於軸axis的理解


axis的本質

axis(軸)是編程語言中常見的概念, 它的本質是數組的層級.

例如, 在Python語言中, numpy的array是一個多維(或一維)的數組:

arr = np.array(np.arange(12).reshape(3,4))
print(arr)
"""
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

"""
print(arr.shape)
"""
(3, 4)
"""
  • axis=0, 表示最外層的[], 相應的arr.shape[0]為 3, 最外層數組有3個元素;
  • axis=1, 表示次外層的[], 相應的arr.shape[1]為 4, 這就表示, 在最外層的3個數組元素中, 每個數組元素中又有4個元素。

沿某個axis進行操作

若函數中axis=i, 則沿着第i個下標變化、其余下標都不變的方向進行操作.

以元素下標的形式表示數組arr為:

arr[0][0] arr[0][1] arr[0][2] arr[0][3]
arr[1][0] arr[1][1] arr[1][2] arr[1][3]
arr[2][0] arr[2][1] arr[2][2] arr[2][3]

print(arr)
"""
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
"""
In [16]: arr.sum(axis=0)

Out[16]: array([12, 15, 18, 21])

arr.sum(axis=0)表示沿着第0個下標變化, 其它索引都不變的方向進行求和操作. 即

  • arr[0][0] + arr[1][0] + arr[2][0] = 12
  • arr[0][1] + arr[1][1] + arr[2][1] = 15
  • arr[0][2] + arr[1][2] + arr[2][2] = 18
  • arr[0][3] + arr[1][3] + arr[2][3] = 21

由以上結論, 可以得到二維數組中axis含義的巧記方法:

二維數組中的巧記方法沿方向操作

  • axis=0, 表示第一個索引變變化, 第二個索引不變, 即沿縱向操作
  • axis=1, 表示第二個索引變變化, 第一個索引不變, 即沿橫向操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM