python - 如何有效地沿对角线翻转numpy数组?

标签 python numpy flip

这个问题在这里已经有了答案:





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/

相关文章:

python - 从 PySpark DataFrame 中的 Python 列表列表中删除一个元素

从不同目录导入Python时出错

iphone - 选项卡栏选项卡中的模态翻转,仅 View 、 Storyboard

ios - 多个翻转动画不起作用

WPF 控制翻转

python - 如何使用 gstreamer 录制实时视频而不丢帧?

python - Pygame health/maxhealth = 0.0 而不是 0.66

python - 将用 np.split() 拆分的 numpy 数组放回原处

python - 错误 : 'module' object is not callable when using logmmse

python - 矩阵在 Python Numpy 中变为 (3,) 而不是 (6,3)