1. 程式人生 > >Python中numpy讀取高維陣列中特定的行,列

Python中numpy讀取高維陣列中特定的行,列

直接跑程式碼,看懂程式碼,跑一遍,你自然懂了。


'''
多維矩陣按括號的層級,從外向內,一次是第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])