Python中numpy讀取高維陣列中特定的行,列
阿新 • • 發佈:2018-12-10
直接跑程式碼,看懂程式碼,跑一遍,你自然懂了。
''' 多維矩陣按括號的層級,從外向內,一次是第1,2,3,...維 b[]內用逗號將各維分開,分別代表第1,2,3...維元素 逗號把陣列分成兩維度,左邊是所有的行(第一維度),右邊是所有的列(第二維度元素) 每個維度上都有自己的下標,也可以用':'取部分 ''' import numpy as np a=np.arange(10) print(a) print(a[0:9]) # 包頭不包尾 print(a[3:6]) print(a[:5]) # :前面不寫就是從下標為0開始 print(a[5:]) # :後面不寫就是一直到最後一個元素 print(a[:]) # :前後都不寫就是從頭到尾 print('---------------') b= np.mat(np.arange(20).reshape(4,5)) #建立4*5的二維矩陣,數字從0到20之間 print(b) print(b[1:3,2:5]) # 先取第一維中下標為1,2的2部分,再取第二維中下標為2,3,4的3部分;逗號左邊,1,2行,逗號右邊,2,3,4,列,他們交集就是我們要的 print(b[:2,2:]) # 同理,前面不寫從頭開始,後面不寫一直到末尾,逗號左邊:0,1兩行,逗號右邊,2,3,4列,他們交集就是我們要的 print(b[:2,3]) # 當然,也可以在某維度上只取一行 print(b[:,4]) #,逗號左邊,所有行,逗號右邊,第四列 print('-----------------') c= np.arange(60).reshape(3,4,5) print(c) print('-------c[:2,2:4,1:4]------------') print(c[:2,2:4,1:4]) # 從外向內一層一層的割,切割不改變矩陣維度 print('---------c[:,:,4]----------') print(c[:,:,4]) print('-------d-----------') d= np.arange(240).reshape(3,4,5,4) print(d) print('-------d[:2,1:3,2:5,1:3]------------') print(d[:2,1:3,2:5,1:3]) print('-------d[:,:,:,3]------------') print(d[:,:,:,3])