为了账号安全,请及时绑定邮箱和手机立即绑定

二维数组排序问题

二维数组排序问题

吃鸡游戏 2022-05-24 15:33:10
我有以下 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) 的复杂性,并希望进一步改进它。
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

对列表列表进行排序的更好方法:


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]]


查看完整回答
反对 回复 2022-05-24
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

试试下面的代码,希望这会有所帮助:


a = np.array([[1, 0],

       [2 ,0],

       [4 ,0],

       [1 ,1],

       [2 ,1],

       [3 ,1],

       [4 ,2]])


np.sort(a.view('i8,i8'), order=['f0'], axis=0).view(np.int)

输出将是:


array([[(1, 0)],

       [(1, 1)],

       [(2, 0)],

       [(2, 1)],

       [(3, 1)],

       [(4, 0)],

       [(4, 2)]])


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信