温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

10分钟带你入门Cython

发布时间:2020-07-14 07:58:51 来源:网络 阅读:1765 作者:Python热爱者 栏目:编程语言

1. Cython是什么?

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI