2017-07-20 7 views
0

は、どのように私はこのnumpyの配列を作るん:numpyのアレイ(列全体を移動します)

[[ 0. 1. 2.] 
[ 192. 312. 98.]] 

は、このに分類しなさい:

[[ 1. 0. 2.] # Moves entire column instead of just the value in the second row 
[ 312. 192. 98.]] # Highest to lowest 

ありがとうございました。 2行目の

答えて

3

使用argsortして、列の順序を変更するために、出力インデックスを使用します。これは本当に巧妙なトリックである

a[:, a[1].argsort()[::-1]] 
#array([[ 1., 0., 2.], 
#  [ 312., 192., 98.]]) 
+1

は、私はそれが好き! – Atlas7

+0

私は質問があります。あなたが[:, [1,0,2]]、[1,0,2]を使って2行目を注文するのに役立ちます。しかし、最初の行が2番目の行の順序に従って変更される理由を理解できません。 –

+0

@ Mr_U4913最初の次元を ':'でスライスするので、順序はすべての行に適用されます。第1行または第2行に関わらず。 – Psidom

関連する問題