三維陣列的建立及切片
阿新 • • 發佈:2019-01-02
建立一個三維陣列
import numpy as np
d3=np.array([
[
np.arange(5),np.arange(5,10)
],
[
np.arange(10,15),np.arange(15,20)
],
[
np.arange(20,25),np.arange(25,30)
]
],)
print (d3)#或者print(d3[::1])-------------------------->[[[ 0 1 2 3 4]
[ 5 6 7 8 9]]
[[10 11 12 13 14]
[15 16 17 18 19]]
[[20 21 22 23 24]
[25 26 27 28 29]] ]
print(d3.shape)-------------------------------------->(3, 2, 5)#三層兩行五列陣列
三維陣列的切片
獲取a層b行c列的資料
print(d3[a-1][b-1][c-1])或者print(d3[a-1,b-1,c-1)
獲取第一層資料
print(d3[0])
print(d3[0,:,:])------------------------------------->[[0 1 2 3 4]
[5 6 7 8 9] ]
獲取第二行資料
print(d3[:,1,:])------------------------------------->[[ 5 6 7 8 9]
[15 16 17 18 19]
[25 26 27 28 29]]
獲取第三列的資料
print(d3[:,:,2])#或者print(d3[...,2])
-------------------------------------->[[ 2 7]
[12 17]
[22 27]]
獲取第一層第二行列行步長為2的資料. ::2表示步長為2
print(d3[0,1,::2])----------------------------------->[5 7 9]
將所有的層數倒序
print(d3[::-1])-------------------------------------->[[[20 21 22 23 24]
[25 26 27 28 29]]
[[10 11 12 13 14]
[15 16 17 18 19]]
[[ 0 1 2 3 4]
[ 5 6 7 8 9]]]
重點內容” :: “—————– ::2表示步長為2,::-2表示從後往前取步長為2的資料
print(d3[:,::-2,4])---------------------------------->[[ 4]
#取 所有層第五列,所有行從後往前步長為2的資料 [14]
[24]]
print(d3[:,::2,4])----------------------------------->[[ 9]
#取 所有層第五列,所有行步長為2的資料 [19]
[29]]