import numpy as np
a = np.array([[5,9,44],
[5,12,43],
[5,33,11]])
b = np.sort(a,axis=0)
print(b) #not well
# [[ 5 9 11]
# [ 5 12 43]
# [ 5 33 44]]
#desired output:
#[[5,33,11],
# [5,12,43],
# [5,9,44]]
numpy排序会完全改变行(当然是基于较低的行到最高的行),但是我想保持行不动。我想根据最后一列值对行进行排序,但是数组中的行和值必须保持不变。有什么节奏曲的方法吗?谢谢
发布于 2018-06-15 16:25:17
ind=np.argsort(a[:,-1])
b=a[ind]
编辑当在排序中使用axis
时,它对每一列进行单独排序,您想要的是从所选列(-1等效于最后一列)中获取排序行的索引,然后重新排序原始数组。
发布于 2018-06-15 16:27:04
a[a[:,-1].argsort()]
可能会为你工作
https://stackoverflow.com/questions/50879469
复制相似问题