numpy中数组维度的理解
參考
這篇文章主要是為了弄清楚數組按每個維度進行計算時,具體的操作是什么樣的。
一、數組中的各個維度表示的是什么?
為了便于理解,用單位體表示,剝去一層中括號后,得到的數據。
1. 以二維數組為例
import numpy as np np.random.seed(0) arr2 = np.random.randint(0,9,size=(4,3)) print(arr2) [[5 0 3][3 7 3][5 2 4][7 6 8]]這個二維數組,總共有兩層中括號。在剝去最外層的中括號后,是4個3維的數組:[5 0 3],[3 7 3],[5 2 4],[7 6 8]。拿任意一個單位體舉例,如[5 0 3],剝去中括號,是3個單位體5,0,3.
2. 以3維數組舉例
arr2 = np.random.randint(0,9,size=(2,4,3)) [[[5 0 3][3 7 3][5 2 4][7 6 8]][[8 1 6][7 7 8][1 5 8][4 3 0]]]這個三維數組,總共有三層中括號。在剝去最外層的中括號后,是2個(4,3)的數組(綠色方框表示的):
后面就和二維數組的表示方法相同。
數組剝去最外層中括號后,得到的單位體的個數表示第0個維度(axis=0)的大小,次外層就是第二個維度(axis=1)的大小,以此類推。
二、數組中按維度計算
數組是尺寸是(4,3),按第0個維度求和后,維度為(3,)
2. 3維數組按維度求和
2.3.1 axis=0
數組是尺寸是(2,4,3),按第0個維度求和后,維度為(4,3).兩個(4,3)的矩陣,對應位置上的元素求和。
剝去最外層中括號后的單位體上對應元素求和
2.3.2 axis=1
過程:
數組是尺寸是(2,4,3),剝去最外層的中括號,是兩個單位體(4,3)——最外層單位體。兩個單位體再剝去一層中括號,得到4個(3,)的數組——次外層單位體。每個最外層單位體內的次外層單位體上相應位置的元素分別相加。
尺寸是(2,4,3)按axis=1相加后,得到的結果的尺寸是(2,3)
2.3.3 axis=2
依照上面的做法,axis=?就將中括號剝到第幾層,然后對應位置上的元素相加。
過程:
數組是尺寸是(2,4,3),剝去最外層的中括號,是兩個單位體(4,3)——最外層單位體。兩個單位體再剝去一層中括號,得到4個(3,)的數組——次外層單位體。4個單位體再剝去最外層的中括號,得到3個次次單位體——標量。
總結
以上是生活随笔為你收集整理的numpy中数组维度的理解的全部內容,希望文章能夠幫你解決所遇到的問題。