python转cython_10分钟带你入门Cython
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相关推荐
- 十分钟学习python_10分钟带你入门Cython
1. Cython是什么? Cython是一个编程语言,它通过类似Python的语法来编写C扩展并可以被Python调用.既具备了Python快速开发的特点,又可以让代码运行起来像C一样快,同时还可以 ...
- 8分钟带你入门人工智能,互联网大厂都在用的高能AI算法
哈喽,大家好,我是 Jack. 不少小伙伴问我,互联网大厂都在用哪些算法?有哪些算法值得学习? 这次,我做了一个视频,又剪了两周多,速度有点慢,但内容绝对充实. 主要是盘点一些互联网巨头,都在使用的人 ...
- Android 3分钟带你入门开发测试
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/-TW7p3z3vJ3GJw7X9u7dVg 作者:Zhu Yifei 作为一名合格的开发人员, ...
- 15分钟带你入门sklearn与机器学习——分类算法篇
作者 | 何从庆 本文转载自AI算法之心(ID:AIHeartForYou) [导读]众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机 ...
- 15 分钟带你入门 sklearn 与机器学习(分类算法篇)
众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...
- Sklearn 损失函数如何应用到_15 分钟带你入门 sklearn 与机器学习(分类算法篇)...
众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...
- a*算法matlab代码_10分钟带你入门MATLAB
10分钟带你快速入门MATLABhttps://www.zhihu.com/video/1234089282815188992 前一段时间我发现有些小伙伴MATLAB基础比较薄弱,今天我来让各位小 ...
- 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!
目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接下来用通俗的方式来介绍自动化测试-- 首先我们从招聘岗位需求 ...
- 十分钟带你入门最具Python风格的Gui库
PySimpleGui是一个很Python的库,虽然不如Qt功能强大,但由于使用的python风格设计的语法所以对于编程小白来说体验很接地气.先给大家看一个PySimpleGui做出来的效果图. 设计 ...
- 一张图30分钟带你入门python-大数据时代来了!神级程序员一张图帮你梳理Python脉络,快速入门...
python语言是我目前为止用的最爽的语言,因为它真的很优美.虽然c,c++,java也非常的强大和伟大,但是每一种语言伟大的背后都是有一定的时代背景. 在PC时代大量的嵌入式的设备,底层的代码,以及 ...
最新文章
- Rowhammer漏洞致“比特位翻转”,如何解决?
- buffer cache 深度解析
- npm package.json文件中的依赖关系,devDependencies和peerDependencies之间有什么区别?
- 你必须知道的EF知识和经验
- 机器学习Sklearn实战——其他线性回归模型、逻辑回归
- Flutter 15: 图解 ListView 不同样式 item 及 Widget 显隐性
- 杭州高职单招计算机试题,河北省高职单招职业技能练习题20
- 库克:iPhone决不妥协!不爽换安卓 iPhone 更有“安全性和隐私性”
- linux不识别xfs,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- 论软件定义GPU对AI数据中心优化的必要性
- Blocks的申明调用与Queue当做锁的用法
- 跟踪wordcount计数器的运行信息
- USB 2.0 Spec 微缩版
- MySQL – iBatis – 文件存储
- CSS expression VS Script event
- 插件Sytrus合成器功能介绍
- 十二笔记(一):winfrom 引用 FastReport.dll 打印标签
- 数据分析师与数据科学家的区别
- discuz template 模板文件说明
- 笔记本电脑键盘没坏却无法打字的情况
热门文章
- 江枫谈淘宝“双十一”事件中的数据库架构优化
- 在word中,“⑩”后面的顺序符号,如圈11、圈12等如何输入?
- 001-三阶魔方-概述及层先法
- 设置word中第一页不显示页码,第二页页码从1开始
- 机器学习入门之异常检测
- JS学习之路系列总结四象阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)
- 杀猪盘、仙人跳…手法过于大开眼界!“反欺诈AI大赛来了
- Python编写的com组件大全与解决对策
- 揭开均线系统的神秘面纱_揭开极限编程的神秘面纱,重新探讨“ XP蒸馏”,第2部分...
- Matlab实现snn代码,SNN系列|神经元模型篇(3)SRM