亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python進度條神器tqdm使用實例詳解

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

各位Python高手,今天我要給大家介紹一個好用的庫,它就是:tqdm

tqdm在阿拉伯語中的意思是 "進展",所以這個庫也被稱為 "快速進展條"。不得不說,這個名字真的很有創(chuàng)意!

讓我們想象一下,你正在運行一個耗時的數(shù)據(jù)處理任務(wù)或者訓(xùn)練一個復(fù)雜的深度學(xué)習(xí)模型。你坐在那里,盯著屏幕,焦急地等待程序完成。這種等待的痛苦,我想你我都有切身體會。這時候,有個可視化的進度條會不會讓你感覺好很多呢?這就是我們今天要推薦的 tqdm 庫的功能。

tqdm 是一個 Python 快速、可擴展的進度條工具庫,它有很多優(yōu)點:

易于使用:只需在 Python 循環(huán)中包裹你的迭代器,一行代碼就能產(chǎn)生一個精美的進度條。

靈活:它可以和 for 循環(huán)、pandas dataframe的 apply 函數(shù)以及 Python 的 map 函數(shù)等等配合使用。

高效:tqdm 使用了智能算法,即使在數(shù)據(jù)流非??斓那闆r下,也不會拖慢你的代碼速度。

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

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

運行這段代碼,你會看到一個動態(tài)更新的進度條。tqdm 會告訴你還有多少項需要處理,預(yù)計剩余時間,以及當前的處理速度。

你會看到一個動態(tài)更新的進度條。tqdm 會告訴你還有多少項需要處理,預(yù)計剩余時間,以及當前的處理速度。

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

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

01

你是否曾在下載大文件時,想要知道下載的進度呢?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)

在上面的代碼中,我們首先獲取到要下載文件的大小。然后,我們在 tqdm 中設(shè)置總的進度條數(shù)目為文件大小除以每個進度條代表的字節(jié)數(shù)。這樣,當我們下載每一個字節(jié)塊并寫入文件時,tqdm 就會自動更新進度條。

02

在機器學(xué)習(xí)中,我們經(jīng)常需要對大規(guī)模的數(shù)據(jù)進行預(yù)處理。使用 tqdm,我們可以很直觀地看到數(shù)據(jù)預(yù)處理的進度。

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

在上面的代碼中,我們首先通過 tqdm.pandas() 方法對pandas 進行 patch。然后,我們就可以在 pandas 的 apply 方法中使用 progress_apply,這樣就可以在數(shù)據(jù)處理的同時顯示進度條。

03

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

from tqdm import tqdm
# 假設(shè)我們有一個訓(xùn)練數(shù)據(jù)集 train_dataloader 和一個模型 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)建多個進度條。

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í)行一些耗時的操作
        time.sleep(0.01)

在這段代碼中,我們創(chuàng)建了兩個進度條,一個用于外部循環(huán),一個用于內(nèi)部循環(huán)。leave=False 選項將在內(nèi)部循環(huán)結(jié)束后刪除內(nèi)部循環(huán)的進度條。

05

有時候,我們可能需要手動更新進度條。例如,當我們在下載文件或處理批量數(shù)據(jù)時,我們可能一次處理多個項目。在這種情況下,我們可以使用 update 方法。

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

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

總結(jié):

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    Python Selenium實現(xiàn)無可視化界面過程解析

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

    Python表示矩陣的方法分析

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

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

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

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

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

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

    下面小編就為大家?guī)硪黄狣jango Admin 實現(xiàn)外鍵過濾的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論