python - 对二维数组进行排序时出现问题

标签 python numpy

我有一个以下 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/

相关文章:

python - 如何将词干提取应用到字典中?

python - 从 Windows 启动 spark ec2 集群

Python - 如果数字大于 0,则运行平均值

python - 从两个不同的数组中选择最接近的值

NumPy 和 SciPy。静态与动态加载

python - 将每行的最后一个非零元素设置为零 - NumPy

python - 编写 csv 输出 python

python - 当 systemd 服务启动失败时,如何让 Ansible 失败?

Python Django 截断响应

python - 将字符串头和索引添加到 numpy 数组