我有一个2D numpy数组,我想将此数组更改为已排序的1D。例如:
A = [[1,0,2],
[0,3,0]]
我想要这样:
B = [3,2,1,0,0,0]
任何想法我怎么能用python模块做这个,而不是写一个排序算法或类似的东西?
由于
答案 0 :(得分:3)
假设您希望按降序对它们进行排序 -
In [127]: A
Out[127]: [[1, 0, 2], [0, 3, 0]]
In [128]: B = np.sort(np.array(A).ravel())
In [129]: B[::-1]
Out[129]: array([3, 2, 1, 0, 0, 0])
基本上,它包含三个步骤:使用ravel()
展平数组,使用np.sort
对其进行排序,然后反转索引以获得descending
顺序排序的效果。
答案 1 :(得分:0)
A = [[1,0,2], [0,3,0]]
B = []
for i in range(len(A)):
for j in range(len(A[i])):
B.append(A[i][j])
B.sort(cmp=None, key=None, reverse=True)
print B
您可以在此处查看我的代码:http://ideone.com/P8xBPK