1. ホーム
  2. python

[解決済み] なぜNumPyの配列は速いのか?

2023-07-31 12:40:59

質問

パフォーマンス上の問題があったので、私が書いているプログラムを変更して、データをnumpyの配列として保持するようにしたところ、その違いは驚くべきものでした。元々実行に30分かかっていたのが、今では2.5秒です!

どうやっているのか不思議に思っていました。私は、それが for ループが不要になるからだと思いますが、それ以上は困っています。

どのように解決するのですか?

Numpyの配列は、同型の配列が密集している配列です。それに対してPythonのリストは、すべてが同じ型であっても、オブジェクトへのポインタの配列となります。つまり、以下のような利点があります。 参照の局所性 .

また、Numpyの多くの演算はCで実装されており、Pythonのループ、ポインタのインダイレクト、要素ごとの動的型チェックなどの一般的なコストを回避することができます。速度向上は実行する操作に依存しますが、数値計算プログラムでは数桁の速度は珍しくありません。