当前位置: 首页 > news >正文

途牛电子商务网站建设人民网 疫情

途牛电子商务网站建设,人民网 疫情,阿里云ecs做淘客网站,wordpress 文章统计python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差。 “一行代码让python的运行速度提高100倍”这绝不是哗众取宠的论调。 我们来看一下这个最简单的例子,从1一直累加到1亿。 最原始…

python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差。

“一行代码让python的运行速度提高100倍”这绝不是哗众取宠的论调。

我们来看一下这个最简单的例子,从1一直累加到1亿。

最原始的代码:

import time

def foo(x,y):

tt = time.time()

s = 0

for i in range(x,y):

s += i

print('Time used: {} sec'.format(time.time()-tt))

return s

print(foo(1,100000000))

结果

Time used: 6.779874801635742 sec

4999999950000000

是不是快了100多倍呢?

那么下面就分享一下“为啥numba库的jit模块那么牛掰?”

NumPy的创始人Travis Oliphant在离开Enthought之后,创建了CONTINUUM,致力于将Python大数据处理方面的应用。最近推出的Numba项目能够将处理NumPy数组的Python函数JIT编译为机器码执行,从而上百倍的提高程序的运算速度。

Numba项目的主页上有Linux下的详细安装步骤。编译LLVM需要花一些时间。

Windows用户可以从Unofficial Windows Binaries for Python Extension Packages下载安装LLVMPy、meta和numba等几个扩展库。

下面我们看一个例子:

import numba as nb

from numba import jit

@jit('f8(f8[:])')

def sum1d(array):

s = 0.0

n = array.shape[0]

for i in range(n):

s += array[i]

return s

import numpy as np

array = np.random.random(10000)

%timeit sum1d(array)

%timeit np.sum(array)

%timeit sum(array)

10000 loops, best of 3: 38.9 us per loop

10000 loops, best of 3: 32.3 us per loop

100 loops, best of 3: 12.4 ms per loop

numba中提供了一些修饰器,它们可以将其修饰的函数JIT编译成机器码函数,并返回一个可在Python中调用机器码的包装对象。为了能将Python函数编译成能高速执行的机器码,我们需要告诉JIT编译器函数的各个参数和返回值的类型。我们可以通过多种方式指定类型信息,在上面的例子中,类型信息由一个字符串'f8(f8[:])'指定。其中'f8'表示8个字节双精度浮点数,括号前面的'f8'表示返回值类型,括号里的表示参数类型,'[:]'表示一维数组。因此整个类型字符串表示sum1d()是一个参数为双精度浮点数的一维数组,返回值是一个双精度浮点数。

内容扩展:

Python运行速度提升

相比较C,C++,python一直被抱怨运行速度很慢,实际上python的执行效率并不慢,而是解释器Cpython运行效率很差。

通过使用numba库的jit可以让python的运行速度提高百倍以上。

同诺简单累加,相乘的例子,可以看出。

#!/usr/bin/env python

# encoding: utf-8

'''

@author: Victor

@Company:华中科技大学电气学院聚变与等离子研究所

@version: V1.0

@contact: 1650996069@qq.com 2018--2020

@software: PyCharm2018

@file: quickPython3.py

@time: 2018/9/21 20:54

@desc:使用numba的jit是python代码运行速度提高100倍左右

'''

'''平常运行'''

import time

def add(x,y):

tt = time.time()

s = 0

for i in range(x,y):

s += i

print('The time used: {} seconds'.format(time.time()-tt))

return s

add(1,100000000)

##########结果###############

# D:\Python3\python.exe D:/Pycharm2018Works/InsteringPython3/SomeBasics/quickPython3.py

# The time used: 6.712835788726807 seconds

# Process finished with exit code 0

'''调用numba运行'''

import time

from numba import jit

@jit

def add(x,y):

tt = time.time()

s = 0

for i in range(x,y):

s += i

print('The time used: {} seconds'.format(time.time()-tt))

return s

add(1,100000000)

##########结果###############

# D:\Python3\python.exe D:/Pycharm2018Works/InsteringPython3/SomeBasics/quickPython3.py

# The time used: 0.06396007537841797 seconds

#

# Process finished with exit code 0

Numba模块能够将处理NumPy数组的Python函数JIT编译为机器码执行,从而上百倍的提高程序的运算速度。

http://www.lbrq.cn/news/2460169.html

相关文章:

  • 环保网页设计素材厦门seo优化推广
  • 接单做网站如何制作自己的网页链接
  • 企业门户网站服务器网站seo最新优化方法
  • wordpress screen廊坊seo管理
  • 景区网站建设的意义谷歌seo网站运营
  • 仙居微信网站开发陕西优化疫情防控措施
  • 国外服务器购买seo免费教程
  • 深圳企业网站建设推广服务网络营销工资一般多少
  • 办公室装修方案郑州seo网络推广
  • 网络科技公司骗术seo成功的案例和分析
  • html导航网站源码深圳百度竞价推广
  • 网站商城建设视频教程排名优化外包公司
  • 用jsp做婚纱网站的流程网站优化排名软件网站
  • 厦门网站建设工作室网站内容优化方法
  • 东阳网站建设有哪些seo培训一对一
  • 中国党风廉政建设网站by网站域名
  • 郑州哪家公司做网站好菏泽百度推广公司电话
  • 馆陶网站建设价格代码编程教学入门
  • 南浔城乡建设局网站最新网站查询工具
  • 上海服装集团网站建设app线下推广怎么做
  • 2核4G服务器wordpressseo推广公司价格
  • 网站关键词和网页关键词的样本泉州百度网站推广
  • 如何成立一家公司合肥seo
  • 劳务网站怎样做百度世界排名
  • wordpress站群管理seo黑帽有哪些技术
  • 自做网站告白如何弄网站品牌推广公司
  • 做视频搬运工的网站互联网十大企业
  • seo 网站 制作搜索指数在线查询
  • 下载网站的表格要钱如何做深圳优化服务
  • 流媒体网站建设方案怎么做网站推广
  • Pinia快速入门
  • 大模型蒸馏(distillation)---从DeepseekR1-1.5B到Qwen-2.5-1.5B蒸馏
  • KTO:基于行为经济学的大模型对齐新范式——原理、应用与性能突破
  • C++11 -- emplace、包装器
  • Linux权限机制:RUID/EUID/SUID与进程安全
  • C++ 多线程同步机制详解:互斥锁、条件变量与原子操作