Python numpy转换1d数组中的2d数组排序

时间:2015-04-17 22:06:21

标签: python arrays sorting numpy

我有一个2D numpy数组,我想将此数组更改为已排序的1D。例如:

A = [[1,0,2],
     [0,3,0]]

我想要这样:

B = [3,2,1,0,0,0]

任何想法我怎么能用python模块做这个,而不是写一个排序算法或类似的东西?

由于

2 个答案:

答案 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