「コンパイラされたコードで行われるため、numpyの演算はずっと早い」
と書いてありました。
どういうことでしょうか
numpy は C 言語で書かれたライブラリを Python から呼び出す形になっており、数値計算など重たい処理はそのライブラリで実行することにより、高速化をはかっています。
つまり、数値計算のほとんどは Python のコードで実行していません。
以下 NumPy - Wikipedia より引用
Pythonは動的型付け言語であるため、プログラムを柔軟に記述できる一方で、純粋にPythonのみを使って数値計算を行うと、ほとんどの場合C言語やJavaなどの静的型付き言語で書いたコードに比べて大幅に計算時間がかかる。
NumPyの内部はC言語 (およびFortran)によって実装されているため非常に高速に動作する。したがって、目的の処理を、大きな多次元配列(ベクトル・行列など)に対する演算として記述できれば(ベクトル化できれば)、計算時間の大半はPythonではなくC言語によるネイティブコードで実行されるようになり大幅に高速化する。
1 コンパイルするのは演算するときにすると思っているのです。
先にコンパイルされるとはどういうことでしょう。
2 c言語などはコンパイラ型でpythonはスクリプト型であることとかんけいしているのでしょうか。
Python の話ではなく、C 言語は コードは実行する前にコンパイルを行い、バイナリにしておく必要があり、そのことを言っています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/25 09:07
2020/04/25 09:36
2020/04/25 13:08