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. qt爬取网页信息_豆瓣TOP250数据爬取
  2. python异步查询数据库_Python中使用aiomysql异步操作MySQL实例效果
  3. LOJ2424「NOIP2015」子串
  4. python 识别二维码内容
  5. 认证的服务号可以快速注册并认证小程序,但是有额度限制
  6. TypeScript学习日记
  7. 赖美云的认证照_赖美云的“瓜子牙”辣眼睛?原来牙齿美容这么重要
  8. 香格里拉是如何策划成功的?
  9. 计算机伦理问题论文,仲伟民:论文写作中的学术伦理问题
  10. 刘顺琦 - CSCI 561 mid 1definition
  11. 触控板的使用技巧~赞,亲测好用,放弃鼠标,拒绝鼠标手、腱鞘炎!!
  12. XR,VR,AR虚拟服务器,虚拟演播室
  13. 批处理删除重复的文件
  14. 汉诺塔代码图文详解(递归入门)
  15. 中央民族大学计算机房,中央民族大学第九届大学生人文知识竞赛 暨北京市第九届大学生人文知识竞赛选拔赛通知...
  16. 钱数转换(转换成:XX万,XX亿)
  17. 开源服务器日志实时查看系统,开源日志管理系统
  18. jquery.html页面不显示,jQuery html()方法显示不了内容的问题
  19. sentry使用方法
  20. KnowHowChain(脑海链)进度报告——9月15日-9月30日

热门文章

  1. 私有云基础架构设计:存储、网络、计算、安全和应用的设计最佳实践及案例
  2. 小兔子乖乖用计算机,宝贝宝贝歌词说说:两只老虎爱跳舞,小兔子乖乖拔萝卜...
  3. 中科大少年班,阿里云首席科学家闵万里离职,发内部信告别!
  4. 苹果App卡审怎么办?
  5. webapp封装 苹果app证书
  6. 召回和粗排负样本构造问题
  7. 基于vue的图片上传预览插件
  8. layui上传图片插件
  9. 回收宝只要6499买华为Mate40 Pro还送iPhone 12手机:结果被秒杀!
  10. STA series --- 3.Standard cell library(PART-I)