1. 程式人生 > 實用技巧 >關於python中的[::-1],[:,:,::-1]的反轉理解

關於python中的[::-1],[:,:,::-1]的反轉理解

其實就是單純的關於反轉,我們只需要記住每一個列表的中間有兩個冒號:
即[a: b:c],意思是從a到b,間隔是c,因為經常省略c,所以經常看到[a:b]。
一、在一維資料中的反轉
import numpy as np
testnum = np.arange(1,10)
testnum

 array([1, 2, 3, 4, 5, 6, 7, 8, 9])

testnum[8:1:-1]

 array([9, 8, 7, 6, 5, 4, 3])

二、在多維資料中的反轉。此時就需要分辨,反轉的是行、列、還是維。
testnum1 = np.random.randint(1,10,size=(4,5,3)) testnum1

 array([[[4, 8, 3],
        [8, 4, 3],
        [7, 7, 2],
        [9, 6, 9],
        [7, 5, 3]],

       [[2, 1, 3],
        [6, 4, 7],
        [4, 5, 9],
        [8, 6, 4],
        [5, 7, 5]],

       [[8, 7, 5],
        [5, 3, 1],
        [2, 9, 2],
        [6, 5, 3],
        [2, 9, 8]],

       [[3, 9, 8],
        [8, 7, 7],
        [8, 3, 4],
        [9, 8, 9],
        [5, 1, 8]]])

testnum1[:,:,::-1]
像上面這個程式碼就是反轉列

 array([[[3, 8, 4],
        [3, 4, 8],
        [2, 7, 7],
        [9, 6, 9],
        [3, 5, 7]],

       [[3, 1, 2],
        [7, 4, 6],
        [9, 5, 4],
        [4, 6, 8],
        [5, 7, 5]],

       [[5, 7, 8],
        [1, 3, 5],
        [2, 9, 2],
        [3, 5, 6],
        [8, 9, 2]],

       [[8, 9, 3],
        [7, 7, 8],
        [4, 3, 8],
        [9, 8, 9],
        [8, 1, 5]]])

比如下面這個就是反轉維數
testnum1[::-1,:,:]

 array([[[3, 9, 8],
        [8, 7, 7],
        [8, 3, 4],
        [9, 8, 9],
        [5, 1, 8]],

       [[8, 7, 5],
        [5, 3, 1],
        [2, 9, 2],
        [6, 5, 3],
        [2, 9, 8]],

       [[2, 1, 3],
        [6, 4, 7],
        [4, 5, 9],
        [8, 6, 4],
        [5, 7, 5]],

       [[4, 8, 3],
        [8, 4, 3],
        [7, 7, 2],
        [9, 6, 9],
        [7, 5, 3]]])