我有以下2D numpy数组:

array([[1 0]
       [2 0]
       [4 0]
       [1 1]
       [2 1]
       [3 1]
       [4 2])


我想用第二个值对第一列的ID进行排序,这很糟糕:

array([[1 0]
       [1 1]
       [2 0]
       [2 1]
       [3 1]
       [4 0]
       [4 2]])


我正在获得O(n ^ 2)复杂度,并希望进一步改善它。

最佳答案

一种更好的列表列表排序方法:

import numpy as np
a = np.array([[1, 0], [2 ,0], [4 ,0], [1 ,1], [2 ,1], [3 ,1], [4 ,2]])
s_a = np.asarray(sorted(a, key=lambda x: x[0]))
print(s_a)


输出:

[[1 0]
 [1 1]
 [2 0]
 [2 1]
 [3 1]
 [4 0]
 [4 2]]

关于python - 二维数组排序问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57887381/

10-12 16:38
查看更多