我有这个np数组:
array([[0, 0, 0, 0, 4, 4],
[2, 3, 5, 6, 5, 6]])
我想按第二行对其进行排序,因此第一行将进行相应的调整。所以输出应该是这样的:
array([[0, 0, 0, 4, 0, 4],
[2, 3, 5, 5, 6, 6]])
有快速的方法吗?
答案 0 :(得分:5)
您可以使用np.argsort()
获取第二行排序版本的索引,并使用这些索引重新排列数组的列:
In [38]: a = np.array([[0, 0, 0, 0, 4, 4],
...: [2, 3, 5, 6, 5, 6]])
...:
In [39]: a[:, np.argsort(a[1])]
Out[39]:
array([[0, 0, 0, 4, 0, 4],
[2, 3, 5, 5, 6, 6]])