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一个级别了!!什么?还不满意?好吧,等我深入学习下先~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值