主頁(yè) > 知識(shí)庫(kù) > numba提升python運(yùn)行速度的實(shí)例方法

numba提升python運(yùn)行速度的實(shí)例方法

熱門(mén)標(biāo)簽:企業(yè)做大做強(qiáng) 硅谷的囚徒呼叫中心 呼叫中心市場(chǎng)需求 百度AI接口 電話運(yùn)營(yíng)中心 Win7旗艦版 客戶服務(wù) 語(yǔ)音系統(tǒng)

大家都知道Python運(yùn)行速度很慢,但是輪子多,因此用戶十分廣泛,在各種領(lǐng)域上都能用到Python,但是最頭疼的還是,解決運(yùn)行速度問(wèn)題,因此這里給大家介紹的是numba,是基本是等于再造語(yǔ)言。但是支持的numpy函數(shù)并不多。要讓能jit的函數(shù)多起來(lái)才行。下面就詳細(xì)介紹使用numba提升python運(yùn)行速度方法。

numba簡(jiǎn)介:

能夠?qū)崿F(xiàn)將python函數(shù)編譯為機(jī)器代碼,提高運(yùn)行速度。

工作作用:

給python換一種編譯器

使用numba:

1、導(dǎo)入numba及其編譯器

import numpy as np
import numba 
from numba import jit

2、傳入numba裝飾器jit,編寫(xiě)函數(shù)

@jit(nopython=True) 
def go_fast(a): 
  trace = 0
   for i in range(a.shape[0]): 
    trace += np.tanh(a[i, i]) 
return a + trace

3、函數(shù)傳入實(shí)參

x = np.arange(100).reshape(10, 10) 
go_fast(x)

4、加速的函數(shù)執(zhí)行時(shí)間

% timeit go_fast(x)

知識(shí)點(diǎn)擴(kuò)展:

numba適合科學(xué)計(jì)算

numpy是為面向numpy數(shù)組的計(jì)算任務(wù)而設(shè)計(jì)的。

在面向數(shù)組的計(jì)算任務(wù)中,數(shù)據(jù)并行性對(duì)于像GPU這樣的加速器是很自然的。Numba了解NumPy數(shù)組類(lèi)型,并使用它們生成高效的編譯代碼,用于在GPU或多核CPU上執(zhí)行。特殊裝飾器還可以創(chuàng)建函數(shù),像numpy函數(shù)那樣在numpy數(shù)組上廣播。

什么情況下使用numba呢?

  • 使用numpy數(shù)組做大量科學(xué)計(jì)算時(shí)
  • 使用for循環(huán)時(shí)

到此這篇關(guān)于numba提升python運(yùn)行速度的實(shí)例方法的文章就介紹到這了,更多相關(guān)如何使用numba提升python運(yùn)行速度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 基于Numba提高python運(yùn)行效率過(guò)程解析

標(biāo)簽:濟(jì)南 山西 山西 喀什 海南 崇左 長(zhǎng)沙 安康

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《numba提升python運(yùn)行速度的實(shí)例方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266