通过colum的indice排序numpy 2d数组

时间:2016-12-03 16:10:19

标签: python sorting numpy

我在python中使用numpy。我有一个1D(nx1)数组和一个2D(nxm)数组。我用argsort得到了一维数组的指示。现在我想用那个indice来排序我的2D(nxm)数组的列。

我想知道怎么做?

例如:

>>>array1d = np.array([1, 3, 0])
>>>array2d = np.array([[1,2,3],[4,5,6]])

>>>array1d_indice = np.argsort(array1d)
    array([2, 0, 1], dtype=int64)

I want use array1d_indice to sord array2d colum to get:
    [[3, 1, 2],
     [6, 4, 5]]

或者无论如何更容易实现这一点是受欢迎的

1 个答案:

答案 0 :(得分:0)

如果你的意思是你想要根据向量排序列,那么你在向量上使用argsort:

vi = np.argsort(vector)

然后按正确的顺序排列array

sorted = array[:, tuple(vi)]

获取行,按:tuple(vi)

的顺序切换