基于Numba提高python運(yùn)行效率過程解析
Numba是Python的即時編譯器,在使用NumPy數(shù)組和函數(shù)以及循環(huán)的代碼上效果最佳。使用Numba的最常見方法是通過其裝飾器集合,這些裝飾器可應(yīng)用于您的函數(shù)以指示Numba對其進(jìn)行編譯。調(diào)用Numba裝飾函數(shù)時,它會被“即時”編譯為機(jī)器代碼以執(zhí)行,并且您的全部或部分代碼隨后可以本機(jī)機(jī)器速度運(yùn)行!
安裝numba(我在這里加了--default-timeout=10000,防止安裝時出現(xiàn)timeout的錯誤)
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)
耗時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)
耗時0.14s,快了近40倍 4999999950000000 0.14488554000854492
看吧,快了40倍!
numba僅對numpy,for和while循環(huán)有效!
參考numba官網(wǎng):http://numba.pydata.org/numba-doc/latest/developer/inlining.html#example-using-numba-jit
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python創(chuàng)建字典(dict)的幾種方法小結(jié)(含代碼示例)
字典(Dictionary)是Python中一種非常靈活的數(shù)據(jù)結(jié)構(gòu),用于存儲鍵值對(key-value pairs),在Python中創(chuàng)建字典有多種方法,每種方法都有其特定的使用場景和優(yōu)勢,本文將詳細(xì)介紹Python中創(chuàng)建字典的幾種常見方法,需要的朋友可以參考下2024-09-09
python學(xué)習(xí)教程之使用py2exe打包
py2exe是一個將python腳本轉(zhuǎn)換成windows上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)教程之使用py2exe打包的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Python?requests用法和django后臺處理詳解
這篇文章主要給大家介紹了關(guān)于Python中requests用法和django后臺處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03
在Python中字典根據(jù)多項規(guī)則排序的方法
今天小編就為大家分享一篇在Python中字典根據(jù)多項規(guī)則排序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
深度學(xué)習(xí)詳解之初試機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)可應(yīng)用在各個方面,本篇將在系統(tǒng)性進(jìn)入機(jī)器學(xué)習(xí)方向前,初步認(rèn)識機(jī)器學(xué)習(xí),利用線性回歸預(yù)測波士頓房價,讓我們一起來看看吧2021-04-04

