python提升运行速度的有效方式

  介绍

这篇文章主要介绍提升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运行速度的有效方式的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

python提升运行速度的有效方式