wvgw1692
@wvgw1692 (spwv)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

[Python] Numpyによる配列計算が速い理由について

解決したいこと

Numpyを用いた配列計算が、forなどのループを配列要素ごとに回すより速い理由について詳しく知りたいです。

調べてわかった部分

  • Numpyの関数による配列計算は、内部でCなどの静的型付き言語によって記述されたプログラムにより実行される
  • その実行の中でも、行列計算用のライブラリを呼び出すことでさらに高速化を計っている

疑問点

  • なぜ静的型付き言語による実行は速いのか
  • Numpyは予めコンパイルされたプログラムを動かしている話を目にしたが、実際の計算に与えられる値が決まっていない状態でコンパイルすることは可能なのか
0

1Answer

pythonではないのですが、rubyのコードを解析された書籍の無償公開版です
https://i.loveruby.net/ja/rhg/book/

オブジェクトとして扱うrubyですが、数値、定数、配列などなどもc言語の構造体で管理しているので、その分だけ処理速度が遅いのだと思います
https://i.loveruby.net/ja/rhg/book/object.html

pythonも少なからず型情報を持たざるを得ないはずなので、実行中にポインタを辿ってなどの処理が発生し、遅いのだと思います。

静的型付けだと、このような型管理が不要だから、というのが理由だからでしょうか。

1Like

Your answer might help someone💌