Python中二维数组按照某一列数值的大小关系对整行进行排序
原理就是先取出数组中的某一列,利用argsort()函数对其排序获得索引,然后调整索引传回给原数组
举个栗子:
现有一个np数组:
a = np.array([[3,1,4,8],
[2,7,5,6],
[8,9,1,4]])
按照某一列进行正序排列(以第二列为例)
idx = a[:,2].argsort() # idx: [2, 0, 1]
a = a[idx]
# [[8 9 1 4]
# a= [3 1 4 8]
# [2 7 5 6]]
按照某一列进行倒序排列(以第二列为例)
idx = a[:,2].argsort() # idx[2,0,1]
new_idx = idx[::-1] # new_idx [1,0,2]
a = a[new_idx]
# [[2 7 5 6]
# a= [3 1 4 8]
# [8 9 1 4]]