[解決済み] Python/NumPyを使って、配列を2回ソートすることなく、項目をランク付けする。
2022-08-15 19:32:16
質問
私は数字の配列を持っていて、最初の配列の各項目のランクを表す別の配列を作成したいと思います。 私はPythonとNumPyを使用しています。
例えば、以下のような感じです。
array = [4,2,7,1]
ranks = [2,1,3,0]
私が思いついた最良の方法を紹介します。
array = numpy.array([4,2,7,1])
temp = array.argsort()
ranks = numpy.arange(len(array))[temp.argsort()]
配列を2回ソートすることを避ける、より良い/より高速な方法はありますか?
どのように解決するのですか?
使用方法 アドバンスト インデックス を最後のステップで左側に追加します。
array = numpy.array([4,2,7,1])
temp = array.argsort()
ranks = numpy.empty_like(temp)
ranks[temp] = numpy.arange(len(array))
これにより、最後のステップで順列を反転させることにより、2回ソートすることを回避することができます。
関連
-
[解決済み] NumPyの配列を切り詰めずに、完全に表示するにはどうしたらよいですか?
-
[解決済み] Pythonでパスから拡張子なしでファイル名を取得する方法は?
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] NumPy の配列を csv ファイルにダンプする
-
[解決済み] NumPyの配列をPythonのリスト構造に変換する?
-
[解決済み】オブジェクトの配列をプロパティ値でソートする
-
[解決済み】NumPyで配列を列でソートする
-
[解決済み】固定長 6 int 配列の最速ソート
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ソートされたリストのインデックスを返すには?重複
-
[解決済み] Numpyのargsort - 何をやっているのですか?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する