【问题标题】:How to flip numpy array along the diagonal efficiently? [duplicate]如何有效地沿对角线翻转 numpy 数组? [复制]
【发布时间】:2020-07-26 15:32:44
【问题描述】:

假设我有以下数组(注意在 [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。希望得到有效的答案,而不仅仅是一个答案,因为不幸的是,这并没有在这么小的矩阵上执行。

【问题讨论】:

标签: python numpy flip


【解决方案1】:

np.rot90(np.fliplr(x)) 和转置数组都解决了这个问题。

a = np.random.uniform(size=(5,5))
a.T == np.rot90(np.fliplr(a))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多