10分钟带你入门Cython

作者: 我爱学python | 来源:发表于2019-04-10 16:20 被阅读11次

    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

    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模块

    相关文章

      网友评论

        本文标题:10分钟带你入门Cython

        本文链接:https://www.haomeiwen.com/subject/zhcoiqtx.html