numpy數組軸詳解

概述

按照圖一中aixs=0,對aixs=0上下對應的數據進行相加在學習numpy的時候,最難理解的就是軸的概念,我們知道座標系中有軸的概念,那麼兩個軸是否有關聯呢?爲了便於理解,特寫此博客進行梳理。

正文

首先數組的維數比較好理解,下面我們創建一個數組:

  1. import numpy as np
  2. # 創建一個三維數組
  3. b=np.arange(24).reshape(4,3,2)

打印結果:

  1. [[[ 0 1]
  2. [ 2 3]
  3. [ 4 5]]
  4. [[ 6 7]
  5. [ 8 9]
  6. [10 11]]
  7. [[12 13]
  8. [14 15]
  9. [16 17]]

b 是一個三維數組:

  1. 第一維有三個元素
  2. 第二維有三個元素
  3. 第三維有四個元素

上面的數據也可以用下列方式展示(圖一)

 

對於下面按照aixs=0進行sum:

print(b.sum(0))

按照圖一中aixs=0,對aixs=0上下對應的數據進行相加,數據從(4,3,2)降維到(3,2)

  1. [[0+ 6+12+18=36 1+ 7+13+19=40]
  2. [2+ 8+14+20=44 3+ 9+15+21=48]
  3. [4+10+16+22=52 5+11+17+23=56]]

對於下面按照aixs=1進行sum:

print(b.sum(1))

按照圖一中aixs=1,按照比1小的軸對數據進行劃分(即aixs=0),然後對劃分的每一部分中數據中的aixs=1上下對應的數據進行相加,數據從(4,3,2)降維到(4,2)

  1. [[ 0+ 2+ 4=6 1+ 3+ 5=9]
  2. [ 6+ 8+10=24 7+ 9+11=27]
  3. [12+14+16=42 13+15+17=45]
  4. [18+20+22=60 19+21+23+63]]

對於下面按照aixs=2進行sum:

print(b.sum(2))

按照圖一中aixs=2,按照比2小的軸對數據進行劃分(即aixs=0,aixs=1),然後對劃分的每一部分中數據中的aixs=2上下對應的數據進行相加,數據從(4,3,2)降維到(4,3)

  1. [[ 0+ 1=1 2+ 3=5 4+ 5=9]
  2. [ 6+ 7=13 8+ 9=17 10+11=21]
  3. [12+13=25 14+15=29 16+17=33]
  4. [18+19=37 20+21=41 22+23=45]]

總結:

  1. aixs的範圍是0到數組的維數(不包括維數)
  2. 軸的劃分是按照維數進行
  3. 相加時按照軸進行對象相加,但是不能跨越比當前軸低的軸

轉自:https://blog.csdn.net/weixin_40900921/article/details/90734020

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章