2016-12-03 9 views
0

私はpythonでnumpyを使用しています。私は1D(nx1)配列と2D(nxm)配列を持っています。 argsortを使って1D配列のインデックスを取得しました。今度は、そのインデックスを使用して、2D(nxm)配列の列をソートする必要があります。並べ替えnumpy 2列配列の添え字で

私はそれを行う方法を知りたいですか?

例えば:

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

それとも、とにかく簡単にこれを達成するために何を意味するあなたは列がベクトルに基づいて並べ替えられ、その後、あなたはベクトルにargsort使いたいということであれば歓迎

+0

tuple(vi)の順序の周りの行、スイッチを取得しますか? – MSeifert

+0

私は説明を変更しました。今はっきりしているはずです。そしてj__の答えが働く。 –

答えて

0

次のとおりです。その後、

vi = np.argsort(vector) 

、正しい順序で arrayの列を配置します

sorted = array[:, tuple(vi)] 
はあなたの期待される出力がどのように見えるかを説明することができ :