在python中反转二维数组

在python中反转二维数组,python,arrays,reverse,Python,Arrays,Reverse,我有一个数组a,它是二维的。A包含也包含对象的对象。 我想确保a[1,1]变成[n,n],a[2,1]变成[n-1,n],a[2,2]变成[n-1][n-1]等等。 为此,我编写了以下代码: tempArray = copy(self.topArea) for y in range(0,len(tempArray)): for x in range(0,len(tempArray[y])): self.topArea[y][x] = tempArray[len(tempA

我有一个数组a,它是二维的。A包含也包含对象的对象。 我想确保a[1,1]变成[n,n],a[2,1]变成[n-1,n],a[2,2]变成[n-1][n-1]等等。 为此,我编写了以下代码:

tempArray = copy(self.topArea)
for y in range(0,len(tempArray)):
    for x in range(0,len(tempArray[y])):
        self.topArea[y][x] = tempArray[len(tempArray)-1-y][len(tempArray[y])-1-x]
但这几乎一事无成。深度复制也无济于事:数组不会反转


如何将其反转?

您想要类似以下内容的内容:

tempArray = [list(reversed(x)) for x in reversed(self.topArea)]
如果一切都在列表中,您还可以执行以下操作:

tempArray = [x[::-1] for x in reversed(self.topArea)]

为了可能提高速度。

这是一个
numpy
数组,还是您在
列表中使用了错误的单词?
?还要注意,在Python中按索引迭代是一个糟糕的想法-它速度慢、效率低、不灵活且难以阅读。Python被设计成按值而不是索引进行迭代。你能给出一个更好的
反转的定义吗?起初,我回答了如何进行转置,但现在我认为这不是您想要的…
tempArray=[x[::-1]用于self中的x。topArea[:-1]
?@SylvainLeroux
reversed
在返回迭代器时内存效率很高。而且,据推测,
reversed
应该适用于更多对象。我不确定我在实际操作中是否发现了这一点,但任何顺序都可以颠倒(包括
xrange
,您无法切片)