2016-12-03 57 views
0

我在Python中使用numpy。我有一个1D(nx1)数组和一个2D(nxm)数组。我使用argsort来获得一维数组的指示。现在我想用这个指令来排序我的2D(nxm)数组的柱。按colum指数排序numpy二维数组

我想知道该怎么做?

例如:

>>>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

的顺序,你可以解释一下你预期的输出应该是什么样子? – MSeifert

+0

我改变了我的描述,现在应该清楚了。而且j__的答案是有效的。 –

回答

0

如果你的意思是你要排序的列基于矢量,那么你就矢量argsort使用:

vi = np.argsort(vector) 

然后在正确的顺序来安排的array列,

sorted = array[:, tuple(vi)] 

让行,开关周围的:tuple(vi)