欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python進(jìn)度條神器tqdm使用實(shí)例詳解

 更新時(shí)間:2023年06月05日 08:18:55   作者:落陽(yáng)呀  
Python進(jìn)度條神器tqdm是一個(gè)快速、可擴(kuò)展的進(jìn)度條工具,可以輕松地為Python腳本添加進(jìn)度條。它可以在循環(huán)中自動(dòng)計(jì)算進(jìn)度,并在終端中顯示進(jìn)度條,讓用戶了解程序的運(yùn)行情況。tqdm還支持多線程和多進(jìn)程,并且可以自定義進(jìn)度條的樣式和顯示方式。

各位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ù)流非常快的情況下,也不會(huì)拖慢你的代碼速度。

讓我們看一下 tqdm 在機(jī)器學(xué)習(xí)任務(wù)中的應(yīng)用示例:

from tqdm import tqdm
import time
for i in tqdm(range(100)):
    # 假設(shè)我們正在進(jìn)行一些耗時(shí)的操作,比如訓(xùn)練深度學(xué)習(xí)模型
    time.sleep(0.01)

運(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)前的處理速度。

100%|██████████| 100/100 [00:01<00:00, 97.31it/s]

我們繼續(xù)深入到 tqdm 的更多使用場(chǎng)景和用法。

01

你是否曾在下載大文件時(shí),想要知道下載的進(jìn)度呢?tqdm 可以很好地滿足你的需求??纯聪旅娴拇a:

import requests
from tqdm import tqdm
response = requests.get(url, stream=True)  # 把stream參數(shù)設(shè)置為True
file_size = int(response.headers['Content-Length'])
chunk = 1
chunk_size = 1024
num_bars = int(file_size / chunk_size)
with open(filename, 'wb') as fp:
    for chunk in tqdm(response.iter_content(chunk_size=chunk_size), total=num_bars, unit='KB', desc=filename, leave=True): 
        fp.write(chunk)

在上面的代碼中,我們首先獲取到要下載文件的大小。然后,我們?cè)?tqdm 中設(shè)置總的進(jìn)度條數(shù)目為文件大小除以每個(gè)進(jìn)度條代表的字節(jié)數(shù)。這樣,當(dāng)我們下載每一個(gè)字節(jié)塊并寫入文件時(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)度。

import pandas as pd
from tqdm import tqdm
tqdm.pandas()
# 假設(shè)我們有一個(gè)大的 dataframe,我們想要對(duì)其 'text' 列進(jìn)行一些預(yù)處理
df['processed_text'] = df['text'].progress_apply(lambda x: preprocess(x))

在上面的代碼中,我們首先通過(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)度。

from tqdm import tqdm
# 假設(shè)我們有一個(gè)訓(xùn)練數(shù)據(jù)集 train_dataloader 和一個(gè)模型 model
for epoch in range(num_epochs):
    epoch_iterator 
= tqdm(train_dataloader, desc=
"Training (Epoch %d)"
 % epoch)
    
    for step, batch in enumerate(epoch_iterator):
        # 模型訓(xùn)練的代碼
        # ...

04

在許多情況下,我們的代碼可能包含嵌套循環(huán)。在這種情況下,我們可以使用 tqdm 創(chuàng)建多個(gè)進(jìn)度條。

from tqdm import tqdm
import time
for i in tqdm(range(100), desc="Outer loop"):
    for j in tqdm(range(10), desc="Inner loop", leave=False):
        # 執(zhí)行一些耗時(shí)的操作
        time.sleep(0.01)

在這段代碼中,我們創(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 方法。

from tqdm import tqdm
import time
with tqdm(total=100) as pbar:
    for i in range(10):
        # 執(zhí)行一些耗時(shí)的操作
        time.sleep(0.1)
        pbar.update(10)

在這段代碼中,我們首先創(chuàng)建了一個(gè)進(jìn)度條,然后在循環(huán)中使用 update 方法手動(dòng)更新進(jìn)度條的值。

總結(jié):

本文介紹了Python進(jìn)度條神器tqdm的使用方法和實(shí)例。tqdm是一個(gè)非常實(shí)用的工具,可以幫助我們更好地了解程序的運(yùn)行情況,提高代碼的可讀性和可維護(hù)性。在使用tqdm時(shí),我們需要注意以下幾點(diǎn):

  1. 在循環(huán)中使用tqdm時(shí),需要將可迭代對(duì)象作為參數(shù)傳遞給tqdm函數(shù)。
  2. 可以通過(guò)設(shè)置參數(shù)來(lái)自定義進(jìn)度條的樣式和顯示方式。
  3. 如果需要在多線程或多進(jìn)程中使用tqdm,需要使用tqdm的并發(fā)版本。
  4. 在使用tqdm時(shí),需要注意進(jìn)度條的更新頻率,避免過(guò)于頻繁地更新進(jìn)度條,影響程序的性能。

總之,tqdm是一個(gè)非常實(shí)用的工具,可以幫助我們更好地了解程序的運(yùn)行情況,提高代碼的可讀性和可維護(hù)性。

以上就是 tqdm 的一些更深入的用法。你應(yīng)該可以看出 tqdm 是一個(gè)非常強(qiáng)大的工具,無(wú)論你在做什么,只要你需要等待,就可以使用 tqdm。希望你可以在你的代碼中嘗試使用 tqdm,看看它如何提升你的編程體驗(yàn)。希望本文能夠?qū)Υ蠹覍W(xué)習(xí)和使用tqdm有所幫助。

相關(guān)文章

  • opencv?python中cv.approxPolyDP函數(shù)詳細(xì)解釋

    opencv?python中cv.approxPolyDP函數(shù)詳細(xì)解釋

    這篇文章主要給大家介紹了關(guān)于opencv?python中cv.approxPolyDP函數(shù)詳細(xì)解釋的相關(guān)資料,OpenCV中的approxPolyDP()函數(shù)用于對(duì)形狀進(jìn)行逼近,以減少多邊形的頂點(diǎn)數(shù),可以用于對(duì)圖像輪廓點(diǎn)進(jìn)行多邊形擬合,需要的朋友可以參考下
    2024-01-01
  • 如何使用conda和pip批量安裝Python包

    如何使用conda和pip批量安裝Python包

    這篇文章主要介紹了如何使用conda和pip批量安裝Python包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python編程二分法實(shí)現(xiàn)冒泡算法+快速排序代碼示例

    Python編程二分法實(shí)現(xiàn)冒泡算法+快速排序代碼示例

    這篇文章主要介紹了Python編程二分法實(shí)現(xiàn)冒泡算法+快速排序代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python調(diào)用API實(shí)現(xiàn)智能回復(fù)機(jī)器人

    python調(diào)用API實(shí)現(xiàn)智能回復(fù)機(jī)器人

    這篇文章主要為大家詳細(xì)介紹了python調(diào)用API實(shí)現(xiàn)智能回復(fù)機(jī)器人,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python input函數(shù)使用實(shí)例解析

    Python input函數(shù)使用實(shí)例解析

    這篇文章主要介紹了Python input函數(shù)使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python Selenium實(shí)現(xiàn)無(wú)可視化界面過(guò)程解析

    Python Selenium實(shí)現(xiàn)無(wú)可視化界面過(guò)程解析

    這篇文章主要介紹了Python Selenium實(shí)現(xiàn)無(wú)可視化界面過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python表示矩陣的方法分析

    Python表示矩陣的方法分析

    這篇文章主要介紹了Python表示矩陣的方法,結(jié)合具體實(shí)例形式分析了Python表示矩陣的方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • Python批量修改文件名操作指南(文件名的替換、前綴、后綴的添加)

    Python批量修改文件名操作指南(文件名的替換、前綴、后綴的添加)

    很多時(shí)候我們手上有一堆文件,需要修改名稱時(shí)需要一個(gè)一個(gè)修改,太麻煩了,這篇文章主要給大家介紹了關(guān)于Python批量修改文件名的相關(guān)資料,包括文件名的替換、前綴、后綴的添加的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • 基于Python的EasyGUI學(xué)習(xí)實(shí)踐

    基于Python的EasyGUI學(xué)習(xí)實(shí)踐

    這篇文章主要介紹了基于Python的EasyGUI學(xué)習(xí)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Django Admin 實(shí)現(xiàn)外鍵過(guò)濾的方法

    Django Admin 實(shí)現(xiàn)外鍵過(guò)濾的方法

    下面小編就為大家?guī)?lái)一篇Django Admin 實(shí)現(xiàn)外鍵過(guò)濾的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09

最新評(píng)論