我想反轉一個二維陣列,但在使用[::-1][::-1]和[::-1, ::-1]索引時得到了兩個不同的結果。下面是一個示例。我不太明白它是如何被不同的解釋的。
values = [
[5, 6, 5, 5, 8, 9, 9],
[9, 5, 1, 4, 5, 9, 7],
[3, 9, 6, 2, 1, 2, 3],
[1, 7, 6, 7, 1, 7, 5],
[2, 1, 3, 8, 7, 8, 8],
[2, 9, 3, 6, 4, 6, 4]
]
x = np.array(values)
reverse_2d_1 = x[::-1][::-1]
reverse_2d_2 = x[::-1, ::-1]
[[5 6 5 5 8 9 9]
[9 5 1 4 5 9 7]
[3 9 6 2 1 2 3]
[1 7 6 7 1 7 5]
[2 1 3 8 7 8 8]
[2 9 3 6 4 6 4]]
[[4 6 4 6 3 9 2]
[8 8 7 8 3 1 2]
[5 7 1 7 6 7 1]
[3 2 1 2 6 9 3]
[7 9 5 4 1 5 9]
[9 9 8 5 5 6 5]]
uj5u.com熱心網友回復:
在第一個示例中,兩個切片是分開決議的,因為每個切片都是一個單獨的操作。所以第一個[::-1]將垂直翻轉陣列,然后第二個[::-1]將再次垂直翻轉它,讓它保持原樣。
在第二個示例中,切片一起決議,每個切片在相應的軸上運行。所以第一個::-1將垂直翻轉,第二個::-1將水平翻轉。
如果您發現它更容易理解,您也可以呼叫np.flip(x, (0, 1))沿給定軸翻轉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/494388.html
