2017-04-07 86 views
0

給出一個三維numpy的陣列我如何交換第一和每個「像素」在三維numpy的Swaping元件陣列

例如的最後一個元素:

a = [[[15 3 61] 
    [56 27 22] 
    [48 32 29] 
    [38 21 50] 
    [28 54 37]] 

    [[47 27 35] 
    [52 34 12] 
    [18 56 48] 
    [ 8 34 1] 
    [37 27 38]]] 

我想要的陣列爲:

a = [[[61 3 15] 
    [22 27 56] 
    [29 32 48] 
    [50 21 38] 
    [37 54 28]] 

有沒有辦法做到這一點,而不使用循環?

回答

1

可以逆轉由a[..., ::-1]沿所述第三軸線的數組:

a = np.array([[[15, 3, 61], 
    [56, 27, 22], 
    [48, 32, 29], 
    [38, 21, 50], 
    [28, 54, 37]], 
    [[47, 27, 35], 
    [52, 34, 12], 
    [18, 56, 48], 
    [ 8, 34, 1], 
    [37, 27, 38]]]) 

a[..., ::-1] 
#array([[[61, 3, 15], 
#  [22, 27, 56], 
#  [29, 32, 48], 
#  [50, 21, 38], 
#  [37, 54, 28]], 

#  [[35, 27, 47], 
#  [12, 34, 52], 
#  [48, 56, 18], 
#  [ 1, 34, 8], 
#  [38, 27, 37]]])