1. 程式人生 > >三維陣列的建立及切片

三維陣列的建立及切片

建立一個三維陣列

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]]