私はこのようなnumpy配列を持っています:
_A = array([[1, 3, 2, 7],
[2, 4, 1, 3],
[6, 1, 2, 3]])
_
このマトリックスの行を降順でソートし、ソートされたマトリックスの引数を次のように取得したいと思います。
_As = array([[3, 1, 2, 0],
[1, 3, 0, 2],
[0, 3, 2, 1]])
_
私は次のことをしました:
_import numpy
A = numpy.array([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]])
As = numpy.argsort(A, axis=1)
_
しかし、これにより、昇順で並べ替えることができます。また、インターネットで解決策を探してしばらくしてから、ソートの順序を逆にするnumpyからのargsort
関数への引数が必要になると予想しています。しかし、どうやらそのような議論はありません!なぜ!?
order
という引数があります。推測してnumpy.argsort(..., order=reverse)
を試しましたが、機能しません。
ここで以前の質問で解決策を探しましたが、次のことができることがわかりました:
_import numpy
A = numpy.array([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]])
As = numpy.argsort(A, axis=1)
As = As[::-1]
_
何らかの理由で、_As = As[::-1]
_で目的の出力が得られません。
まあ、私はそれが単純でなければならないが、私は何かを見逃していると思います。
Numpy配列を降順でソートするにはどうすればよいですか?
マトリックスに-1を掛けて、順序を逆にします。
[In]: A = np.array([[1, 3, 2, 7],
[2, 4, 1, 3],
[6, 1, 2, 3]])
[In]: print( np.argsort(-A) )
[Out]: [[3 1 2 0]
[1 3 0 2]
[0 3 2 1]]