基于Numba提高python運(yùn)行效率過(guò)程解析
Numba是Python的即時(shí)編譯器,在使用NumPy數(shù)組和函數(shù)以及循環(huán)的代碼上效果最佳。使用Numba的最常見(jiàn)方法是通過(guò)其裝飾器集合,這些裝飾器可應(yīng)用于您的函數(shù)以指示Numba對(duì)其進(jìn)行編譯。調(diào)用Numba裝飾函數(shù)時(shí),它會(huì)被“即時(shí)”編譯為機(jī)器代碼以執(zhí)行,并且您的全部或部分代碼隨后可以本機(jī)機(jī)器速度運(yùn)行!
安裝numba(我在這里加了--default-timeout=10000,防止安裝時(shí)出現(xiàn)timeout的錯(cuò)誤)
pip --default-timeout=10000 install -U numba
from numba import jit
import time
def add(x):
he=0
for i in range(x):
he+=i
return he
start=time.time()
res=add(100000000)
print(res)
end=time.time()
print(end-start)
耗時(shí)5s 4999999950000000 5.707650184631348
使用Numba的JIT裝飾器@jit,以嘗試加快某些功能的運(yùn)行速度
from numba import jit
import time
@jit
def add(x):
he=0
for i in range(x):
he+=i
return he
start=time.time()
res=add(100000000)
print(res)
end=time.time()
print(end-start)
耗時(shí)0.14s,快了近40倍 4999999950000000 0.14488554000854492
看吧,快了40倍!
numba僅對(duì)numpy,for和while循環(huán)有效!
參考numba官網(wǎng):http://numba.pydata.org/numba-doc/latest/developer/inlining.html#example-using-numba-jit
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python創(chuàng)建字典(dict)的幾種方法小結(jié)(含代碼示例)
字典(Dictionary)是Python中一種非常靈活的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對(duì)(key-value pairs),在Python中創(chuàng)建字典有多種方法,每種方法都有其特定的使用場(chǎng)景和優(yōu)勢(shì),本文將詳細(xì)介紹Python中創(chuàng)建字典的幾種常見(jiàn)方法,需要的朋友可以參考下2024-09-09
Python字符串的常見(jiàn)操作實(shí)例小結(jié)
這篇文章主要介紹了Python字符串的常見(jiàn)操作,結(jié)合實(shí)例形式總結(jié)分析了Python字符串的查詢、轉(zhuǎn)換、分割、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
python?特殊詞匯過(guò)濾功能的實(shí)現(xiàn)
這篇文章主要介紹了python?特殊詞匯過(guò)濾功能的實(shí)現(xiàn),這就利用了python其中一個(gè)功能強(qiáng)大之處可以方便集成很多的非標(biāo)準(zhǔn)庫(kù),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
python學(xué)習(xí)教程之使用py2exe打包
py2exe是一個(gè)將python腳本轉(zhuǎn)換成windows上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)教程之使用py2exe打包的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Python?requests用法和django后臺(tái)處理詳解
這篇文章主要給大家介紹了關(guān)于Python中requests用法和django后臺(tái)處理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03
python基于tkinter制作下班倒計(jì)時(shí)工具
這篇文章主要介紹了python基于tkinter制作倒計(jì)時(shí)工具的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
pytorch多GPU并行運(yùn)算的實(shí)現(xiàn)
這篇文章主要介紹了pytorch多GPU并行運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
在Python中字典根據(jù)多項(xiàng)規(guī)則排序的方法
今天小編就為大家分享一篇在Python中字典根據(jù)多項(xiàng)規(guī)則排序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
深度學(xué)習(xí)詳解之初試機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)可應(yīng)用在各個(gè)方面,本篇將在系統(tǒng)性進(jìn)入機(jī)器學(xué)習(xí)方向前,初步認(rèn)識(shí)機(jī)器學(xué)習(xí),利用線性回歸預(yù)測(cè)波士頓房?jī)r(jià),讓我們一起來(lái)看看吧2021-04-04

