我在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]]
或者无论如何更容易实现这一点是受欢迎的
答案 0 :(得分:0)
如果你的意思是你想要根据向量排序列,那么你在向量上使用argsort:
vi = np.argsort(vector)
然后按正确的顺序排列array
列
sorted = array[:, tuple(vi)]
获取行,按:
和tuple(vi)