仅按第二行对np 2维数组进行排序

时间:2018-08-01 09:42:32

标签: python numpy

我有这个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]])

有快速的方法吗?

1 个答案:

答案 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]])