CythonでPythonコードを加速して、スピードでジャンプ!

2600 ワード

紹介する
Pythonでコードを記述したことがある場合は、希望するコードブロックではなく、いくつかのコードブロックの実行を待つのにもっと時間がかかる可能性があります.コードをより効果的にする方法はいくつかありますが、Cコードよりも遅い可能性があります.これは主にPythonが動的プログラミング言語であり,多くのものをC言語コンパイル中に処理される実行時に移動することに帰結する.
 
 
 
 
 
Pythonリソース共有グループ:626017123
しかし、もしあなたが私のようにPythonでコードを書くのが好きで、あなたのコードを加速したいなら、Cythonを使うことを考えることができます.Cython自体は独立したプログラミング言語ですが、例えばJupyterノートワークフローに統合しやすいです.実行時にCythonはPythonコードをCに変換し、通常は大幅に高速化します.
Cythonのインストール
Cythonを使用するには、Cコンパイラが必要です.このため、インストール手順は現在のOSによって異なります.Linuxの場合、GNU Cコンパイラ(gncc)は通常存在する.Mac OSの場合は、Xcodeをダウンロードしてgnccを取得できます.Windowsを使用する必要がある場合は、インストールプロセスが少し複雑になります.
Cコンパイラがあれば、端末で実行する必要があるのは次のとおりです.
pip install Cython 

Cythonの使い方
Cython機能を実証する最も簡単な方法は、Jupyterノートパソコンを通じてです.ノートパソコンでCythonを使用するには、IPythonマジックコマンドを使用します.Magicコマンドはパーセンテージで始まり、ワークフローを強化する追加機能を提供します.通常、マジックコマンドには2つのタイプがあります.
  • 線魔法は単一'%'で表され、1行の入力のみで
  • を操作する.
  • セルマジックは2つの'%'で表され、複数行入力で操作されます.

  • 始めましょう.
    まず、Cythonを使用できるように、次のように実行する必要があります.
    %load_ext Cython 
    

    コード・ユニットでCythonを実行するたびに、まず次のmagicコマンドをセルに挿入する必要があります.
    %%cython 
    

    完成したら、Cythonでコードを開始することができます.
    Cythonの速度はどのくらい速いですか?
    Cythonの速度は、従来のPythonコードと比較して、コード自体に依存します.たとえば、多くの変数を持つ計算量の大きなループを実行すると、Cythonは通常のPythonコードよりも大幅に優れます.再帰関数もCythonをPythonよりずっと速くします.
    これをFibonacciシーケンスで証明しましょう.簡単に言えば、このアルゴリズムは前の2つの数字を加算することによって次の数字を見つける.以下はPythonの内容です.
    def fibonacci(n): 
     if n  
      

    Python :

     

     

     

     

     

    , 39 13.3 。 。

    Cython 。

     

     

     

    ? , , Cython。 '-a' 。 , , n 。

    , magic '-a', , Python 。 , 。 , Python , C 。 “+” Python C 。

    ? :

     

     

     

     

     

    ,Cython Python 6.75 。 Cython , Python 。

    C、Cython C ,Cython 。 , , C Python , dict 。

    %%cython 
    cdef extern from "math.h": 
     cpdef double sin(double x) 
    

    Cythonは、ドキュメントで に に されているパラレルなど、 くの の を しています.

    Pythonコードを するのに がかかりすぎるという がある は、Cythonはコードを するための に とした な を します. も なのは、お の をさらに する を することです.