python的numpy数组重排

xilige 发布于 2016/06/15 13:48
阅读 664
收藏 0

已知数组A=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])

现在想转换成如下的形式:

np.array([[4,5,2,1,3],[9,10,7,6,8],[14,15,12,11,13]])

应该如何操作

加载中
0
x
xilige

谢谢各位,已经找到解决方案:

import pandas as pd
print np.array(pd.DataFrame(A).reindex(columns=[3,4,1,0,2]))




0
BookShu
BookShu

我不知道np怎么解析,我就把np当做普通的列表的列表来处理,操作和你的np应该是类似的,你稍微转化下就可以。

另外,你给的例子中,所有列表的长度都是奇数个,这里我就依照照奇数来解答了,因为我不知道偶数应该怎样来操作。

看你给的例子,大致就是以中间数为中心,先顺序输出后面的部分,再逆序输出前面的部分,最后输出中间数。

最后的B就是输出

A = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
B = []  for li in A:
    length = len(li)
    mid = length / 2  newli = [] for i in range(mid + 1, length):
        newli.append(li[i]) for i in range(mid):
        newli.append(li[mid - i - 1])
    newli.append(li[length / 2])
    B.append(newli)  print B
0
红叔
红叔

如果只是想数组重排的话用这个更清爽:

import random

a = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]
for i in a:
    random.shuffle(i)
print a

结果随机:[[5, 3, 2, 4, 1], [7, 10, 8, 9, 6], [13, 12, 14, 15, 11]]


返回顶部
顶部