[解決済み] なぜNumPyの配列は速いのか?
2023-07-31 12:40:59
質問
パフォーマンス上の問題があったので、私が書いているプログラムを変更して、データをnumpyの配列として保持するようにしたところ、その違いは驚くべきものでした。元々実行に30分かかっていたのが、今では2.5秒です!
どうやっているのか不思議に思っていました。私は、それが
for
ループが不要になるからだと思いますが、それ以上は困っています。
どのように解決するのですか?
Numpyの配列は、同型の配列が密集している配列です。それに対してPythonのリストは、すべてが同じ型であっても、オブジェクトへのポインタの配列となります。つまり、以下のような利点があります。 参照の局所性 .
また、Numpyの多くの演算はCで実装されており、Pythonのループ、ポインタのインダイレクト、要素ごとの動的型チェックなどの一般的なコストを回避することができます。速度向上は実行する操作に依存しますが、数値計算プログラムでは数桁の速度は珍しくありません。
関連
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] 配列の結合/平坦化
-
[解決済み] JavaScriptで配列を比較する方法は?
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
-
[解決済み] numpyを使用して2つの配列のすべての組み合わせの配列を構築する
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
最新
-
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のListはどのように実装されていますか?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する