0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python 加速的24個好方法分享

454398 ? 來源:機(jī)器學(xué)習(xí)算法與Python學(xué)習(xí) ? 作者:機(jī)器學(xué)習(xí)算法與 ? 2020-11-11 15:46 ? 次閱讀

一,分析代碼運行時間

第1式,測算代碼運行時間

平凡方法

快捷方法(jupyter環(huán)境)

第2式,測算代碼多次運行平均時間

平凡方法

快捷方法(jupyter環(huán)境)

第3式,按調(diào)用函數(shù)分析代碼運行時間

平凡方法

快捷方法(jupyter環(huán)境)

第4式,按行分析代碼運行時間

平凡方法


快捷方法(jupyter環(huán)境)

二,加速你的查找

第5式,用set而非list進(jìn)行查找

低速方法

高速方法

第6式,用dict而非兩個list進(jìn)行匹配查找

低速方法

高速方法

三,加速你的循環(huán)

第7式,優(yōu)先使用for循環(huán)而不是while循環(huán)

低速方法

高速方法

第8式,在循環(huán)體中避免重復(fù)計算

低速方法

高速方法

四,加速你的函數(shù)

第9式,用循環(huán)機(jī)制代替遞歸函數(shù)

低速方法

高速方法

第10式,用緩存機(jī)制加速遞歸函數(shù)

低速方法

高速方法

第11式,用numba加速Python函數(shù)

低速方法

高速方法

五,使用標(biāo)準(zhǔn)庫函數(shù)進(jìn)行加速

第12式,使用collections.Counter加速計數(shù)

低速方法

高速方法

第13式,使用collections.ChainMap加速字典合并

低速方法

高速方法

六,使用numpy向量化進(jìn)行加速

第14式,使用np.array代替list

低速方法

高速方法

第15式,使用np.ufunc代替math.func

低速方法

高速方法

第16式,使用np.where代替if

低速方法

高速方法

七,加速你的Pandas

第17式,使用np.ufunc函數(shù)代替applymap

低速方法

高速方法

第18式,使用預(yù)分配存儲代替動態(tài)擴(kuò)容

低速方法

高速方法

第19式,使用csv文件讀寫代替excel文件讀寫

低速方法

高速方法

第20式,使用pandas多進(jìn)程工具pandarallel

低速方法

高速方法

八,使用Dask進(jìn)行加速

第21式,使用dask加速dataframe

低速方法

高速方法

第22式,使用dask.delayed進(jìn)行加速

低速方法

高速方法

九,應(yīng)用多線程多進(jìn)程加速

第23式,應(yīng)用多線程加速IO密集型任務(wù)

低速方法

高速方法

第24式,應(yīng)用多進(jìn)程加速CPU密集型任務(wù)

低速方法

高速方法

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84081
收藏 人收藏

    評論

    相關(guān)推薦

    基于Python的深度學(xué)習(xí)人臉識別方法

    基于Python的深度學(xué)習(xí)人臉識別方法是一涉及多個技術(shù)領(lǐng)域的復(fù)雜話題,包括計算機(jī)視覺、深度學(xué)習(xí)、以及圖像處理等。在這里,我將概述一基本的流程,包括數(shù)據(jù)準(zhǔn)備、模型選擇、訓(xùn)練過程、以及
    的頭像 發(fā)表于 07-14 11:52 ?946次閱讀

    如何解決Python爬蟲中文亂碼問題?Python爬蟲中文亂碼的解決方法

    如何解決Python爬蟲中文亂碼問題?Python爬蟲中文亂碼的解決方法Python爬蟲過程中,遇到中文亂碼問題是常見的情況。亂碼問題主要是由于編碼不一致所導(dǎo)致的,下面我將詳細(xì)介紹
    的頭像 發(fā)表于 01-12 15:11 ?1579次閱讀

    加速Python for循環(huán)的12種方法

    Python內(nèi)建的一常用功能是timeit模塊。下面幾節(jié)中我們將使用它來度量循環(huán)的當(dāng)前性能和改進(jìn)后的性能。
    的頭像 發(fā)表于 01-04 17:33 ?1828次閱讀
    <b class='flag-5'>加速</b><b class='flag-5'>Python</b> for循環(huán)的12種<b class='flag-5'>方法</b>

    查看python安裝路徑的方法

    如何查看Python安裝路徑,以及各個操作系統(tǒng)下的細(xì)節(jié)和注意事項。 一、Windows操作系統(tǒng)下查看Python安裝路徑的方法 對于Windows操作系統(tǒng),有多種方法可以查看
    的頭像 發(fā)表于 11-29 14:54 ?2789次閱讀

    運行Python程序的幾種常見方法

    Python是一種高級編程語言,具有簡單易學(xué),易于閱讀和調(diào)試的特點。當(dāng)你完成了一Python程序之后,你需要運行它以檢查程序是否按照預(yù)期工作。下面是運行Python程序的幾種常見
    的頭像 發(fā)表于 11-28 15:32 ?1940次閱讀

    python如何一直循環(huán)一代碼

    Python中,有幾種方法可以實現(xiàn)代碼的循環(huán)執(zhí)行。下面我將詳盡、詳實、細(xì)致地介紹這些方法和它們的使用情況。 使用while循環(huán): 在Python中,可以使用while循環(huán)來重復(fù)執(zhí)行一
    的頭像 發(fā)表于 11-23 15:54 ?1609次閱讀

    python中input怎么輸入3

    Python 中,可以使用 input() 函數(shù)來獲取用戶的輸入。如果你想要輸入多個值,可以根據(jù)具體的需求使用以下方法方法一:使用多個 input 函數(shù) 最簡單的方法是使用多個
    的頭像 發(fā)表于 11-23 15:31 ?6704次閱讀

    python調(diào)用math函數(shù)的方法

    中。本文將詳細(xì)介紹math模塊中的各種數(shù)學(xué)函數(shù)的調(diào)用方法,包括函數(shù)的功能、參數(shù)的使用和返回值的含義等方面,以幫助讀者更好地理解和應(yīng)用這些函數(shù)。 一、導(dǎo)入math模塊 要使用math模塊中的函數(shù),首先需要將其導(dǎo)入到Python程序中。可以使用import語句將
    的頭像 發(fā)表于 11-22 11:01 ?2104次閱讀

    python輸出list的每一元素

    使用for循環(huán)來遍歷列表,并輸出其中的每一元素。接下來,我將詳盡、詳實、細(xì)致地介紹一下Python輸出列表的每一元素的方法,希望能對你有所幫助。 首先,我們需要明確一下什么是列表。
    的頭像 發(fā)表于 11-21 16:16 ?1121次閱讀

    python的insert方法

    insert()方法Python中的列表對象提供的一方法,用于在指定位置插入一元素。該方法
    的頭像 發(fā)表于 11-21 14:27 ?1244次閱讀

    python如何定義一函數(shù)

    一、Python3 函數(shù) 函數(shù)是組織的,可重復(fù)使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。 函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如 print
    的頭像 發(fā)表于 11-14 11:26 ?597次閱讀

    Python中普通方法、靜態(tài)方法、類方法的區(qū)別

    1. 場景 前幾天,有一小伙伴過來問我,Python 中的 @staticmethod、@classmethod、self、cls 分別代表什么意思,自己平時光顧著用,不知道具體的含義? 事實上
    的頭像 發(fā)表于 11-02 11:03 ?571次閱讀

    PyJNIus :讓你在Python中輕松調(diào)用Java方法

    PyJNIus 是一神奇的 Python 第三方模塊。它能使用Java本地接口將Java類作為Python類訪問的Python模塊。 如果你需要在
    的頭像 發(fā)表于 11-01 10:45 ?664次閱讀

    PyJNIus:在Python中輕松調(diào)用Java方法

    PyJNIus 是一神奇的 Python 第三方模塊。它能使用Java本地接口將Java類作為Python類訪問的Python模塊。 如果你需要在
    的頭像 發(fā)表于 10-30 11:32 ?671次閱讀

    關(guān)于兩Python開源識別工具的效果

    回復(fù)希望出一篇 OCR 相關(guān)的文章,今天嘗試了一下 cnocr 和 tesseract 兩 Python 開源識別工具的效果,給大家分別講講兩工具的使用方法和對比效果。 1.準(zhǔn)備
    的頭像 發(fā)表于 10-17 11:36 ?527次閱讀
    關(guān)于兩<b class='flag-5'>個</b><b class='flag-5'>Python</b>開源識別工具的效果