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_10分钟带你入门Cython相关推荐

  1. 五分钟讲个故事带你入门计算机网络全站第二佳

    一次点赞到底发生了什么 为什么要写这一篇博客 听到HTTP.TCP/IP.RPC的时候我头都是大的,跟着文章深究,越学越糊涂.我有时候希望学习是轻松的,能够大体的掌握发生了什么,从具体到抽象,从整体到 ...

  2. GitHub 近两万 Star!深度学习 500 问带你入门人工智能!| 技术头条

    作者 | 非主流.Jane 出品 | CSDN AI 科技大本营(ID:rgznai100) 程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_sourc ...

  3. k8s怎么学习?:带你入门到实战

    1元秒杀5星好课<k8s入门与运维:灵活安装kubernetes/k8s各个版本高可用集群>,课程销量和好评目前始终排在第一,时间有限,需要的抓紧抢购哈,只需1元,不要错过哦.课程链接如下 ...

  4. 【建议收藏】图解十大经典机器学习算法——带你入门机器学习

    目录 机器学习 机器学习的步骤 01  线性回归 02 逻辑回归 03 线性判别分析 04 分类和回归树 05 朴素贝叶斯 06 K近邻 07 学习矢量量化 08 支持向量机 09 bagging和随 ...

  5. 【跟着ChatGPT学深度学习】ChatGPT带我入门深度学习

    ❤️觉得内容不错的话,欢迎点赞收藏加关注

  6. 【跟着ChatGPT学深度学习】ChatGPT带我入门NLP

    ❤️觉得内容不错的话,欢迎点赞收藏加关注

  7. 10分钟带你了解python_10分钟Python入门系列教程及学习资源分享

    本期分享笔记内容 归档此前入门教程文章,方便查看 10分钟带你Python入门的特点 简单谈下如何寻找Python学习资源 关于分享Python学习资源的分享问题 本人对于Python学习创建了一个小 ...

  8. vue-cli十分钟学习入门笔记――开袋即食

    vue-cli十分钟学习之从一无所知到糊里糊涂 文章目录 vue-cli十分钟学习之从一无所知到糊里糊涂 1.为啥要学习Vue? 2.NodeJs安装及其npm介绍 3.脚手架vue-cli安装 4. ...

  9. UWP开发入门(十九)——10分钟学会在VS2015中使用Git

    原文:UWP开发入门(十九)--10分钟学会在VS2015中使用Git 写程序必然需要版本控制,哪怕是个人项目也是必须的.我们在开发UWP APP的时候,VS2015默认提供了对微软TFS和Git的支 ...

最新文章

  1. postgres 物理格式
  2. Adam公式+参数解析
  3. MySQL 笔记7 -- 权限操作与视图
  4. Python程序开发——第三章 列表与元组
  5. 弯下腰,拾起你无价的尊严
  6. Java EE 8 MVC:全局异常处理
  7. Sql Server 2008将数据库导出sql脚本并导出数据
  8. static变量的作用(转)
  9. 对自定义UITableViewCell的理解
  10. java21天打卡day17-类2
  11. python基础入门第0天
  12. 实验7(2019.6.18)
  13. 代码动态逍遥叹之狂学php
  14. 决策树 Decision Tree
  15. 贝叶斯公式和共轭分布
  16. 精选PHP毕业设计12套——源码+论文完整资源
  17. js 编译emoji表情
  18. 网络教育本科统考计算机和英语作文,2020年9月网络教育统考大学英语B模拟冲刺题试卷3...
  19. 如何利用今日头条推荐规则, 打造阅读量100万+的爆款文章?
  20. MyBatis入门学习(二)

热门文章

  1. UX2 beta 3正式发布!!
  2. 静态long类型常量serialVersionUID的作用
  3. mysql select语句执行顺序
  4. 在 Windows 8 中支持传感器
  5. Vue「五」—— 动态组件、插槽、自定义指令
  6. Linux驱动(12)--LED驱动
  7. keytool使用方法总结
  8. linux双网卡 ipv4 ipv6 双栈,ipv4 ipv6双栈哪个优先
  9. 鸿蒙公测报名表填写,鸿蒙2.0公测报名审核要多久_鸿蒙2.0公测报名审核时间
  10. 更改oracle背景,Oracle 11gR2修改用户后导致系统HANG住