Cython入门
1 | 1. 理解Cpython和Cython的区别 |
#####Jupyter 中使用Cython1
21.首先加载cython,%load_ext Cython
2.在写函数的时候需要加上%%cython即可对其进行编译
Cython语句和表达式
1 | 缺点:需要会C语言相关知识,能够将Python代码通过Python+C实现(重计算的部分\频繁调用) |
Cython语法
1 | 1. 定义一个C变量 |
#####Cython代码样例
######1.样例一号(求质数)
1 | 首先,创建.pyx文件,创建prime.pyx,写代码,C特性变量使用前必须先声明 |
2.样例二号(比较C程度不同的代码速度
https://www.jianshu.com/p/9410db8fbf50 计算沿地球表面两点之间的距离
速度对比综合:大多数情况下,Python的性能是足够好的,一旦循环、数字运算和Python函数调用上去了,性能就会相应地下降,在这种情况下,建议使用Cython进行优化
3.样例三号(传矩阵参数)
1 | 一. |
分析Cython程序的好坏
1 | 1.cython -a yfxl.pyx (yfxl.pyx为cython文件名,会生成的.html文件 |
######优化(由简单到复杂)
1 | 1. 将数据类型由动态转换成静态(变量使用前先cdef定义一下)----->这一步就对速度有显著提升 |
######总结
1 | 1. 数据类型必须使用前定义,但不是全部,Cython根据其分配推导局部变量的类型,这也可以减少在任何地方显式指定类型的需要(如循环的i),添加类型过多会使代码的可读性降低,因此请适度使用它们 |