10分钟带你入门Cython

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

10分钟带你入门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函数

10分钟带你入门Cython

4.2 Cython def函数

10分钟带你入门Cython

4.3 Cython cpdef函数

10分钟带你入门Cython

4.4 Cython cdef函数

10分钟带你入门Cython

5. 在Cython中使用Python对象

常规Python函数,运行时间549微秒

Python内置函数,运行时间104微秒

Cython函数,运行时间51.6微秒

A = list(range(10000))

5.1 常规Python函数

10分钟带你入门Cython

5.2 Python内置函数

%timeit sum(A)

5.3 Cython函数

10分钟带你入门Cython

6. 在.pyx文件中使用Cython

建立名为example.pyx的文件,键入如下代码

在控制台使用cythonize命令,将.pyx文件转为.c文件再编译为C模块

10分钟带你入门Cython


当前标题:10分钟带你入门Cython
分享地址:http://ybzwz.com/article/ipgjoe.html