[解決済み】numpyの配列を逆引きする最も効率的な方法
2022-03-26 18:45:05
質問
信じられないかもしれませんが、私の現在のコードをプロファイリングした結果、numpy配列の復帰の繰り返し操作が実行時間の巨大な塊を食っていました。私が今持っているのは、一般的なビューベースのメソッドです。
reversed_arr = arr[::-1]
他にもっと効率的な方法はないのでしょうか、それとも非現実的なnumpyの性能へのこだわりからくる錯覚なのでしょうか。
どのように解決するのですか?
を作成する際に
reversed_arr
は、元の配列に対するビューを作成していることになります。 そして、元の配列を変更すると、ビューはその変更を反映したものに更新されます。
必要以上に頻繁にビューを再作成していませんか? このようなことができるようになるはずです。
arr = np.array(some_sequence)
reversed_arr = arr[::-1]
do_something(arr)
look_at(reversed_arr)
do_something_else(arr)
look_at(reversed_arr)
私はnumpyの専門家ではありませんが、これがnumpyで物事を行う最も速い方法のように思われます。 もしこれがすでにやっていることであれば、改善することはできないと思います。
P.S. numpyのビューに関する素晴らしい議論はこちらです。
関連
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み] NumPyの配列を切り詰めずに、完全に表示するにはどうしたらよいですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Pythonで文字列を反転させる
-
[解決済み] リストを反転させるには?
-
[解決済み] NumPy の配列を csv ファイルにダンプする
-
[解決済み] NumPy多次元配列のi番目の列にアクセスする方法は?
-
[解決済み】numpy:配列内のユニークな値に対する最も効率的な頻度カウント
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
python call matlab メソッドの詳細
-
Python カメの描画コマンドとその例
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み] argsortを降順で使用することは可能ですか?