使用cython库对python代码进行动态编译达到加速效果
Posted wuzaipei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用cython库对python代码进行动态编译达到加速效果相关的知识,希望对你有一定的参考价值。
1、测试代码:新建 fib.pyx
# coding:utf-8 import matplotlib.pyplot as plt import numpy as np from sklearn.cluster import KMeans def km(): return KMeans(n_clusters=4) def fib(n): if n<2: return 1 else: return fib(n-1)+fib(n-2) def plots(): x = np.linspace(-2,2,30) y = np.sin(x) plt.plot(x,y) plt.show()
2、新建 fib_setup.py
from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext setup( cmdclass=‘build_ext‘: build_ext, ext_modules=[Extension("myfib", ["fib.pyx"])] )
3、在当前文件下打开cmd执行:
python fib_setup.py build_ext --inplace
4、新建 test.py
# coding=utf-8 # 把python代码编译成动态文件 # python fib_setup.py build_ext --inplace import myfib import time t = time.time() myfib.fib(37) print(time.time() - t) print(myfib.km())
测试成功搞定,这种方法可以提高python一大截计算速度。还可以吧
以上是关于使用cython库对python代码进行动态编译达到加速效果的主要内容,如果未能解决你的问题,请参考以下文章
在 mac 上使用 cython 和 emscripten 将简单的 python 程序编译为 javascript