三维数组的创建及切片

创建一个三维数组

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

猜你喜欢

转载自blog.csdn.net/messi_james/article/details/80460382