讓你的代碼動(dòng)起來(lái):Python進(jìn)度條神器tqdm詳解及應(yīng)用實(shí)例
各位Python高手,今天我要給大家介紹一個(gè)好用的庫(kù),它就是:tqdm
tqdm在阿拉伯語(yǔ)中的意思是 "進(jìn)展",所以這個(gè)庫(kù)也被稱為 "快速進(jìn)展條"。不得不說(shuō),這個(gè)名字真的很有創(chuàng)意!
讓我們想象一下,你正在運(yùn)行一個(gè)耗時(shí)的數(shù)據(jù)處理任務(wù)或者訓(xùn)練一個(gè)復(fù)雜的深度學(xué)習(xí)模型。你坐在那里,盯著屏幕,焦急地等待程序完成。這種等待的痛苦,我想你我都有切身體會(huì)。這時(shí)候,有個(gè)可視化的進(jìn)度條會(huì)不會(huì)讓你感覺(jué)好很多呢?這就是我們今天要推薦的 tqdm 庫(kù)的功能。
tqdm 是一個(gè) Python 快速、可擴(kuò)展的進(jìn)度條工具庫(kù),它有很多優(yōu)點(diǎn):
易于使用:只需在 Python 循環(huán)中包裹你的迭代器,一行代碼就能產(chǎn)生一個(gè)精美的進(jìn)度條。
靈活:它可以和 for 循環(huán)、pandas dataframe的 apply 函數(shù)以及 Python 的 map 函數(shù)等等配合使用。
高效:tqdm 使用了智能算法,即使在數(shù)據(jù)流非??斓那闆r下,也不會(huì)拖慢你的代碼速度。
讓我們看一下 tqdm 在機(jī)器學(xué)習(xí)任務(wù)中的應(yīng)用示例:
運(yùn)行這段代碼,你會(huì)看到一個(gè)動(dòng)態(tài)更新的進(jìn)度條。tqdm 會(huì)告訴你還有多少項(xiàng)需要處理,預(yù)計(jì)剩余時(shí)間,以及當(dāng)前的處理速度。
你會(huì)看到一個(gè)動(dòng)態(tài)更新的進(jìn)度條。tqdm 會(huì)告訴你還有多少項(xiàng)需要處理,預(yù)計(jì)剩余時(shí)間,以及當(dāng)前的處理速度。
我們繼續(xù)深入到 tqdm 的更多使用場(chǎng)景和用法。
01

你是否曾在下載大文件時(shí),想要知道下載的進(jìn)度呢?tqdm 可以很好地滿足你的需求。看看下面的代碼:
在上面的代碼中,我們首先獲取到要下載文件的大小。然后,我們?cè)?tqdm 中設(shè)置總的進(jìn)度條數(shù)目為文件大小除以每個(gè)進(jìn)度條代表的字節(jié)數(shù)。這樣,當(dāng)我們下載每一個(gè)字節(jié)塊并寫(xiě)入文件時(shí),tqdm 就會(huì)自動(dòng)更新進(jìn)度條。
02

在機(jī)器學(xué)習(xí)中,我們經(jīng)常需要對(duì)大規(guī)模的數(shù)據(jù)進(jìn)行預(yù)處理。使用 tqdm,我們可以很直觀地看到數(shù)據(jù)預(yù)處理的進(jìn)度。
在上面的代碼中,我們首先通過(guò) tqdm.pandas() 方法對(duì)pandas 進(jìn)行 patch。然后,我們就可以在 pandas 的 apply 方法中使用 progress_apply,這樣就可以在數(shù)據(jù)處理的同時(shí)顯示進(jìn)度條。
03

在訓(xùn)練深度學(xué)習(xí)模型時(shí),我們經(jīng)常需要迭代大量的 epochs。使用 tqdm,我們可以清晰地看到模型訓(xùn)練的進(jìn)度。
04

在許多情況下,我們的代碼可能包含嵌套循環(huán)。在這種情況下,我們可以使用 tqdm 創(chuàng)建多個(gè)進(jìn)度條。
在這段代碼中,我們創(chuàng)建了兩個(gè)進(jìn)度條,一個(gè)用于外部循環(huán),一個(gè)用于內(nèi)部循環(huán)。leave=False 選項(xiàng)將在內(nèi)部循環(huán)結(jié)束后刪除內(nèi)部循環(huán)的進(jìn)度條。
05

有時(shí)候,我們可能需要手動(dòng)更新進(jìn)度條。例如,當(dāng)我們?cè)谙螺d文件或處理批量數(shù)據(jù)時(shí),我們可能一次處理多個(gè)項(xiàng)目。在這種情況下,我們可以使用 update 方法。
在這段代碼中,我們首先創(chuàng)建了一個(gè)進(jìn)度條,然后在循環(huán)中使用 update 方法手動(dòng)更新進(jìn)度條的值。
以上就是 tqdm 的一些更深入的用法。你應(yīng)該可以看出 tqdm 是一個(gè)非常強(qiáng)大的工具,無(wú)論你在做什么,只要你需要等待,就可以使用 tqdm。希望你可以在你的代碼中嘗試使用 tqdm,看看它如何提升你的編程體驗(yàn)。

更多python相關(guān)資料,關(guān)注后后臺(tái)發(fā)1即可白嫖哦