1. Cython是什么?
创新互联公司拥有十多年成都网站建设工作经验,为各大企业提供成都网站设计、成都网站建设服务,对于网页设计、PC网站建设(电脑版网站建设)、App定制开发、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、空间域名等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。
Cython是一个编程语言,它通过类似Python的语法来编写C扩展并可以被Python调用.既具备了Python快速开发的特点,又可以让代码运行起来像C一样快,同时还可以方便地调用C library。
2. 如何安装Cython?
跟大多数的Python库不同,Cython需要一个C编译器,在不同的平台上配置方法也不一样。
2.1 配置gcc
windows
安装MingW-w64编译器:
conda install libpython m2w64-toolchain -c msys2
在Python安装路径下找到\Lib\distutils文件夹,创建distutils.cfg写入如下内容:
macOS
安装XCode即可
linux:gcc一般都是配置好的,如果没有就执行这条命令:
sudo apt-get install build-essential
2.2 安装cython库
如果没安装Anaconda: pip install cython
如果安装了Anaconda: conda install cython
3. 在Jupyter Notebook上使用Cython
首先加载Cython扩展,使用魔术命令 %load_ext Cython
接下来运行Cython代码,使用魔术命令 %%cython
4. 试试Cython到底有多快
常规Python函数,运行时间559 ns
Cython def函数,声明一个Python函数,既可以在模块内调用,也可以在模块外调用。模块内运行时间524.2 ns,模块外运行时间512 ns
Cython cpdef函数,声明一个C函数和一个Python wrapper,在模块内被当做C函数调用,在模块外被.py文件当做Python函数调用。模块内运行时间43.7 ns,模块外运行时间81.7 ns
Cython cdef函数,声明一个C函数,不可以在模块外被Python调用。模块内运行时间34.8 ns
4.1 常规Python函数
4.2 Cython def函数
4.3 Cython cpdef函数
4.4 Cython cdef函数
5. 在Cython中使用Python对象
常规Python函数,运行时间549微秒
Python内置函数,运行时间104微秒
Cython函数,运行时间51.6微秒
A = list(range(10000))
5.1 常规Python函数
5.2 Python内置函数
%timeit sum(A)
5.3 Cython函数
6. 在.pyx文件中使用Cython
建立名为example.pyx的文件,键入如下代码
在控制台使用cythonize命令,将.pyx文件转为.c文件再编译为C模块