`
iyuan
  • 浏览: 467689 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

cython初涉

阅读更多
话不多说,Hello World:
#hello.pyx
def say_hello_to(name):
    print("Hello %s!" % name)

#setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules = [Extension("hello", ["hello.pyx"])]

setup(
  name = 'Hello world app',
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules
)

执行:
python setup.py build_ext --inplace

欧了~第一个cython算是完成,就是那个 hello.so的东东,如同普通的py文件一样使用即可。

可是,为毛要cython这么麻烦捏?速度啊速度!
def f(x):
    return x**2-x

def integrate_f(a, b, N):
    s = 0
    dx = (b-a)/N
    for i in range(N):
        s += f(a+i*dx)
    return s * dx

cython一下,提高35%!还不满意?那么稍微再改改:
def f(double x):
    return x**2-x

def integrate_f(double a, double b, int N):
    cdef int i
    cdef double s, dx
    s = 0
    dx = (b-a)/N
    for i in range(N):
        s += f(a+i*dx)
    return s * dx

4倍啊4倍!和原生的c一个级别了!!什么?还不满意?好吧,等我深入学习下先~
0
3
分享到:
评论

相关推荐

    Python库 | Cython-0.29.3.tar.gz

    **Python库Cython详解** Cython是一款开源的Python编程语言扩展,它允许开发者将Python代码编译成C语言,从而显著提升程序的运行速度。在Python世界中,Cython被视为一个静态类型的、优化过的Python方言,它使得...

    [Cython] Cython 编程学习教程 (英文版)

    [Packt Publishing] Cython 编程学习教程 (英文版) [Packt Publishing] Learning Cython Programming (E-Book) ☆ 图书概要:☆ Expand your existing legacy applications in C using Python Overview Extend ...

    Cython文件在window与linux下的编译指导

    Cython 文件在 window 与 linux 下的编译指导 Cython 文件在 window 与 linux 下的编译指导是指在不同的操作系统平台上编译 Cython 文件的指导。Cython 是一种高级语言,可以将 Python 代码编译成 C 代码,然后再...

    Cython封装C++代码示例

    在IT行业中,优化Python代码性能是一项常见的需求,而Cython是一种解决方案,它允许开发者使用Python语法来编写接近原生速度的C/C++代码。本文将详细介绍如何使用Cython来封装C++代码,以便在Python环境中高效地运行...

    Cython入门 示例

    **Cython入门详解** Cython是一种混合静态类型的Python方言,旨在提高Python代码的运行效率,尤其是在科学计算和数值处理领域。它允许开发者使用类似于Python的语法编写代码,但同时引入了类型声明,使得编译后的...

    cython0.23源码

    Cython是一种编程语言,它是Python的一个扩展,旨在提高Python代码的执行速度。它允许开发者将Python代码转换为C语言,从而可以直接编译成高效的机器代码。Cython 0.23 是一个较早的版本,它在开发科学计算库如...

    PyPI 官网下载 | Cython-3.0a5-cp35-cp35m-manylinux1_i686.whl

    标题中的“PyPI 官网下载 | Cython-3.0a5-cp35-cp35m-manylinux1_i686.whl”表明这是一个在Python Package Index(PyPI)官方源上发布的Cython库的特定版本。Cython是一种静态类型的语言,它是Python的超集,旨在...

    cython_bbox-0.1.3

    "cython_bbox-0.1.3" 是一个软件包,它主要涉及到两个技术领域:`pip` 和 `Cython`。首先,我们来详细了解一下这两个概念。 **Cython** 是一种静态类型的、Python 语言的扩展,它允许开发者用接近 Python 的语法...

    Learning Cython Programming

    ### Cython编程学习:扩展C语言与Python的桥梁 #### 概述 Cython是一种将Python代码转换为C代码的静态编译器,它能够显著提高Python程序的执行速度,尤其是在处理密集型计算任务时。《Learning Cython Programming...

    Cython-0.23.3.tar.gz

    Cython是一种混合编程语言,它是Python的一个扩展,旨在提高Python代码的执行速度。Cython-0.23.3.tar.gz 是Cython的0.23.3版本的源码包,通常用于开发者进行编译和安装。这个压缩包包含了构建、安装Cython所需的...

    Learning Cython Programming.pdf

    Cython是Python程序设计语言的一个编译器,它允许开发者使用Python代码,并通过在其中添加类型声明来提高性能。这个工具的主要目的是为了使Python代码能够直接和C语言代码进行互操作,从而在关键性能部分实现提升。...

    cython python3.6 linux

    此为适用于linux系统python3.6的cython安装包,版本为0.29

    PyPI 官网下载 | Cython-0.27.3-cp27-cp27m-win_amd64.whl

    **PyPI 官网下载 | Cython-0.27.3-cp27-cp27m-win_amd64.whl** PyPI(Python Package Index)是Python社区广泛使用的软件包仓库,用于发布和分发Python模块。开发者可以将自己的Python项目上传到PyPI,使得全球的...

    Python-OrderedDict的Cython实现

    `cyordereddict-master`可能是这个项目的源代码压缩包,其中包含了所有必要的文件,如`.pyx`(Cython源文件)、`.pxd`(Cython接口定义文件)以及编译和安装所需的配置文件。 要使用这个库,首先需要安装`Cython`。...

    详解如何利用Cython为Python代码加速

    引言 通常,在 Python 中写循环(特别是多重循环)非常的慢,在文章 //www.jb51.net/article/133807.htm中,我们的...cimport cython DTYPE = np.float ctypedef np.float_t DTYPE_t def update_state(np.ndarray[DTYP

    Cython-0.29.30-py3-none-any.whl

    Cython-0.29.30-py3-none-any.whl

    07-python-Cython 语法-class 和 cdef class,使用 C++-Typed memoryviews

    为了提高Python代码的运行速度,开发者可以使用Cython,一个静态类型的Python方言,它允许我们使用C或C++级别的性能,同时保持Python的易读性和简洁性。本篇将深入探讨Cython中的"class"和"cdef class",以及如何...

Global site tag (gtag.js) - Google Analytics