關於python中的[::-1],[:,:,::-1]的反轉理解
阿新 • • 發佈:2020-11-13
其實就是單純的關於反轉,我們只需要記住每一個列表的中間有兩個冒號:
即[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]]])