3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】Cythonで高速化備忘録

Last updated at Posted at 2022-12-08

Cythonとは

Python 用の C言語拡張機能を簡単に実装できる言語。書き方はPythonとほぼ同じだが、C言語の関数を直接呼び出したり、C言語の変数の型やクラスを宣言できるなど可能である。PythonコードをC言語に変換し、コンパイルすればPythonの拡張モジュールが出力できる。

使い方

pipでCythonをインストール。

pip install Cython

高速化したいPythonコードを書く。

sample.pyx
def func(int n):
    for i in range(1, n):
        i = i + 1
    print(i)

Cython実行用のコードを書く。

setup.py
from setuptools import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize("sample.pyx")
)

以下のコマンドでビルドを行う。

python setup.py build_ext --inplace

ビルドしたプログラムの呼び出し方。

sample_call.py
import sample 

if __name__ == "__main__":
    sample.func(10000000)

まとめ

CythonでC/C++言語でビルドして、Pythonモジュール化による高速化の備忘録でした。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?