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

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

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

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

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

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

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