
Cython
Johnson0722
learning like deep learning
展开
-
Cython基础教程(一) - 基本概念介绍
最近工作中的一些项目需要用到cython做加速,但网上都是一些零散的教程,唯一参考的文献是官方的文档和OReilly的书,但都是英文的,对于英文不好的同学可能阅读起来比较吃力。所以我个人花了一些时间,根据参考文献,系统的梳理了一下cython的用法,希望能够帮助到更多的同学。简介Cython是一种拓展的python, 融合了静态类型的c/c++, 其文件扩展名为.pyx, 这种类型的文件经过编...原创 2019-08-25 21:41:23 · 10301 阅读 · 4 评论 -
Cython基础教程(三)- Cython中的扩展类型
Cython中的扩展类型考虑如下一个简单的类:class Particle(object): def __init__(self, m, p, v): self.mass = m self.position = p self.velocity = v def get momentum(self): return s...原创 2019-08-25 22:03:49 · 2463 阅读 · 0 评论 -
Cython基础教程(四) - 组织好cython代码
Organizing Cython codeCython提供了三种类型的文件来组织Cython代码,最常用的是.pyx文件,也被叫做执行文件。如果Cython项目很小而且不需要额外的代码访问C-level的类或者结构体,那么一个.pyx文件就够了。但是如果需要C-level的类,那么可以将c-level的类定义在另外一个文件中。假设现在有一个执行文件simulatior.pyx,包含一下内容(...原创 2019-08-25 22:07:43 · 1630 阅读 · 0 评论 -
Cython基础教程(五) -用cython包装C++库
用cython包装C++库假设有一个简单的生成随机数的类, 提供了一下接口namespace mtrandom {const static unsigned int N = 624;class MT_RNG { public: MT_RNG(); MT_RNG(unsigned long s); MT_RNG(unsigned l...原创 2019-08-25 22:08:37 · 2179 阅读 · 0 评论 -
Cython基础教程(六) - Cython分析工具
当我们使用cython来加速python模块时,我们需要到底在什么地方需要写c/c++代码来进行来加速,在什么地方写python来保持代码的灵活性。Cython运行时间分析当我们优化cython代码的时候,首先需要知道什么地方的代码需要进行改变,可以使用内置的分析工具profile模块(更快的C执行,cProfile),来查看个行代码的运行时间。当使用分析工具的时候不需要对pure-pyth...原创 2019-08-25 22:15:15 · 1302 阅读 · 0 评论 -
Cython基础教程(二) -变量和函数
cython变量的声明CtypeCython cdef statementPointerscdef int *p, void **bufStack-allocted C arayscdef int arr[10], double points[20][10]typedefd aliased typescdef size_t lenCompound ty...原创 2019-08-25 21:58:54 · 4145 阅读 · 3 评论