这篇文章主要介绍提升python运行速度的有效方式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差。
"一行代码让python的运行速度提高100倍”这绝不是哗众取宠的论调。
我们来看一下这个最简单的例子,从1一直累加到1个亿。
最原始的代码:
import 时间 def foo (x, y): 时间=tt 才能;time.time () s 才能=0 for 才能小姐:拷贝范围(x, y): ,,s +=,我 打印才能(& # 39;Time 使用:,{},sec # 39; .format (time.time () tt)) return 才能 打印(foo (100000000))
结果
Time 使用:6.779874801635742,秒 4999999950000000
是不是快了100多倍呢?
那么下面就分享一下“为啥numba库的jit模块那么牛掰?”
NumPy的创始人特拉维斯奥列芬特在离开Enthought之后,创建了连续体,致力于将Python大数据处理方面的应用。最近推出的numba项目能够将处理NumPy数组的Python函数jit编译为机器码执行,从而上百倍的提高程序的运算速度。
numba项目的主页上有Linux下的详细安装步骤。编译LLVM需要花一些时间。
窗口用户可以从非官方Windows二进制文件Python扩展包下载安装LLVMPy,元和numba等几个扩展库。
下面我们看一个例子:
import numba as nb 得到numba import  jit @jit (& # 39; f8 (f8 [:]) & # 39;) def sum1d(数组): s 0.0=,=,,n  array.shape [0] ,for 小姐:拷贝范围(n): s 才能+=,数组(我) return 年代 import numpy  as np 时间=array np.random.random (10000) % timeit sum1d(数组) % timeit np.sum(数组) % timeit 和(数组) 10000,循环,,best of 3:, 38.9, us per 循环 10000,循环,,best of 3:, 32.3, us per 循环 100,循环,,best of 3:, 12.4,小姐per 循环
numba中提供了一些修饰器,它们可以将其修饰的函数JIT编译成机器码函数,并返回一个可在Python中调用机器码的包装对象。为了能
将Python函数编译成能高速执行的机器码,我们需要告诉JIT编译器函数的各个参数和返回值的类型。我们可以通过多种方式指定类型信
息,在上面的例子中,类型信息由一个字符串& # 39;f8 (f8[:]) & # 39;指定。其中& # 39;f8 # 39;表示8个字节双精度浮点数,括号前面的& # 39;f8 # 39;表示返回值类型,括号
里的表示参数类型,& # 39;[:]& # 39;表示一维数组。因此整个类型字符串表示sum1d()是一个参数为双精度浮点数的一维数组,返回值是一个双精度
浮点数。
以上是提升Python运行速度的有效方式的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!