0
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?

Pythonはもう遅い言語ではなくなりましたね

0
Last updated at Posted at 2026-09-19

Pythonの最大の弱点である遅さを克服する方法を,初心者向けのレベルでまとめました.
Cython/Numba/ctypes/pybind11解説(PDF,67ページ,787KB)

これはPython3ライブラリブックの抜粋です.
処理内容や使い方によってはC言語に匹敵する速度が得られます.
NumPyによるベクトル化の対象とならないような,for,whileによる反復処理も,数値演算なら十分な速度が出せるようになりました.

4つの方法について解説しています.

・Cython:
 Pythonに近い「Cython言語」で記述したプログラムをC/C++のソースコードに変換してコンパイルし,通常のPythonからimport可能な「拡張モジュール」にする.

・Numba:
 最適化を指示するデコレータを関数定義に付加すると,JITコンパイラ(LLVM)によってその関数が機械語に変換される.利用方法は最も手軽.通常は最初の呼び出し時にコンパイルが行われるため,性能測定などではあらかじめ一度ウォームアップ実行する.
 特にNumPyと組み合わせると,顕著に高速化されることがある.

・ctypes:
 C言語などで作った動的ライブラリ(WindowsのDLLやLinuxの.soファイルなど)をPythonプログラムから読み込んで利用する仕組み.C ABIを介して,C言語で書かれた関数をPythonから呼び出すことができる.

・pybind11:
 C++で作られた関数やクラスをPythonから自然に利用できるようにする仕組み.C++側にPythonとの接続用のラッパを記述し,通常のPythonからimport可能な拡張モジュールを作成する.クラスやSTLなどを含むPythonとC++の高度な連携が可能になる.

C/C++言語の入門書もこちらで公開しています.

0
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
0
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?