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

python转cython_10分钟带你入门Cython相关推荐

  1. 十分钟学习python_10分钟带你入门Cython

    1. Cython是什么? Cython是一个编程语言,它通过类似Python的语法来编写C扩展并可以被Python调用.既具备了Python快速开发的特点,又可以让代码运行起来像C一样快,同时还可以 ...

  2. 8分钟带你入门人工智能,互联网大厂都在用的高能AI算法

    哈喽,大家好,我是 Jack. 不少小伙伴问我,互联网大厂都在用哪些算法?有哪些算法值得学习? 这次,我做了一个视频,又剪了两周多,速度有点慢,但内容绝对充实. 主要是盘点一些互联网巨头,都在使用的人 ...

  3. Android 3分钟带你入门开发测试

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/-TW7p3z3vJ3GJw7X9u7dVg 作者:Zhu Yifei 作为一名合格的开发人员, ...

  4. 15分钟带你入门sklearn与机器学习——分类算法篇

    作者 | 何从庆 本文转载自AI算法之心(ID:AIHeartForYou) [导读]众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机 ...

  5. 15 分钟带你入门 sklearn 与机器学习(分类算法篇)

    众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...

  6. Sklearn 损失函数如何应用到_15 分钟带你入门 sklearn 与机器学习(分类算法篇)...

    众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...

  7. a*算法matlab代码_10分钟带你入门MATLAB

    ​ 10分钟带你快速入门MATLABhttps://www.zhihu.com/video/1234089282815188992 前一段时间我发现有些小伙伴MATLAB基础比较薄弱,今天我来让各位小 ...

  8. 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!

    目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接下来用通俗的方式来介绍自动化测试-- 首先我们从招聘岗位需求 ...

  9. 十分钟带你入门最具Python风格的Gui库

    PySimpleGui是一个很Python的库,虽然不如Qt功能强大,但由于使用的python风格设计的语法所以对于编程小白来说体验很接地气.先给大家看一个PySimpleGui做出来的效果图. 设计 ...

  10. 一张图30分钟带你入门python-大数据时代来了!神级程序员一张图帮你梳理Python脉络,快速入门...

    python语言是我目前为止用的最爽的语言,因为它真的很优美.虽然c,c++,java也非常的强大和伟大,但是每一种语言伟大的背后都是有一定的时代背景. 在PC时代大量的嵌入式的设备,底层的代码,以及 ...

最新文章

  1. Rowhammer漏洞致“比特位翻转”,如何解决?
  2. buffer cache 深度解析
  3. npm package.json文件中的依赖关系,devDependencies和peerDependencies之间有什么区别?
  4. 你必须知道的EF知识和经验
  5. 机器学习Sklearn实战——其他线性回归模型、逻辑回归
  6. Flutter 15: 图解 ListView 不同样式 item 及 Widget 显隐性
  7. 杭州高职单招计算机试题,河北省高职单招职业技能练习题20
  8. 库克:iPhone决不妥协!不爽换安卓 iPhone 更有“安全性和隐私性”
  9. linux不识别xfs,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  10. 论软件定义GPU对AI数据中心优化的必要性
  11. Blocks的申明调用与Queue当做锁的用法
  12. 跟踪wordcount计数器的运行信息
  13. USB 2.0 Spec 微缩版
  14. MySQL – iBatis – 文件存储
  15. CSS expression VS Script event
  16. 插件Sytrus合成器功能介绍
  17. 十二笔记(一):winfrom 引用 FastReport.dll 打印标签
  18. 数据分析师与数据科学家的区别
  19. discuz template 模板文件说明
  20. 笔记本电脑键盘没坏却无法打字的情况

热门文章

  1. 江枫谈淘宝“双十一”事件中的数据库架构优化
  2. 在word中,“⑩”后面的顺序符号,如圈11、圈12等如何输入?
  3. 001-三阶魔方-概述及层先法
  4. 设置word中第一页不显示页码,第二页页码从1开始
  5. 机器学习入门之异常检测
  6. JS学习之路系列总结四象阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)
  7. 杀猪盘、仙人跳…手法过于大开眼界!“反欺诈AI大赛来了
  8. Python编写的com组件大全与解决对策
  9. 揭开均线系统的神秘面纱_揭开极限编程的神秘面纱,重新探讨“ XP蒸馏”,第2部分...
  10. Matlab实现snn代码,SNN系列|神经元模型篇(3)SRM