可以说我有一个数组

a = np.arange(16).reshape((4,4))

0   1  2   3
4   5  6   7
8   9  10  11
12  13 14  15

但是我想要
15  11  7  3
14  10  6  2
13  9   5  1
12  8   4  0

这是跨辅助对角线的翻转,或者是一种反转置。

我该如何在numpy中执行此操作?

最佳答案

一个人可以执行以下任一操作:
rot90(a,2).Trot90(flipud(a),1)rot90(fliplr(a), -1)
或在评论中建议使用hpaulj(感谢hpaulj)
a[::-1,::-1].T
这里是速度排名,是对1000个随机10000x10000数组进行反转置后最慢方法的比率。

  • 63.5%-a[::-1,::-1].T
  • 85.6%-rot90(a,2).T
  • 97.8%-rot90(flipud(a),1)
  • 100%-rot90(fliplr(a),-1)
  • 关于python - 在python中执行反转置的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44772451/

    10-12 21:23