这个问题在这里已经有了答案:
Flip and rotate numpy array
(3 个回答)
8 个月前关闭。
假设我有以下数组(请注意,在 [2,0] 位置有一个 1,在 [3,4] 位置有一个 2):
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[0, 0, 0, 0, 2]
[0, 0, 0, 0, 0]
我想有效地沿对角线翻转它,以便:[0, 0, 1, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 2, 0]
这不适用于 fliplr 或 rot90 或 flipud。想要有效的答案而不仅仅是答案,因为不幸的是,这不是在这么小的矩阵上执行的。
最佳答案
两者 np.rot90(np.fliplr(x))
并转置数组解决了这个问题。
a = np.random.uniform(size=(5,5))
a.T == np.rot90(np.fliplr(a))
关于python - 如何有效地沿对角线翻转numpy数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61198658/