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

python tqdm實(shí)現(xiàn)進(jìn)度條的示例代碼

 更新時(shí)間:2020年11月10日 16:51:38   作者:Dream seeker_z  
這篇文章主要介紹了python tqdm實(shí)現(xiàn)進(jìn)度條的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、前言

\quad \quad 有時(shí)候在使用Python處理比較耗時(shí)操作的時(shí)候,為了便于觀(guān)察處理進(jìn)度,這時(shí)候就需要通過(guò)進(jìn)度條將處理情況進(jìn)行可視化展示,以便我們能夠及時(shí)了解情況。這對(duì)于第三方庫(kù)非常豐富的Python來(lái)說(shuō),想要實(shí)現(xiàn)這一功能并不是什么難事。
\quad \quad tqdm就能非常完美的支持和解決這些問(wèn)題,可以實(shí)時(shí)輸出處理進(jìn)度而且占用的CPU資源非常少,支持循環(huán)處理、多進(jìn)程、遞歸處理、還可以結(jié)合linux的命令來(lái)查看處理情況,等進(jìn)度展示。

我們先來(lái)看一下進(jìn)度條的效果。

from tqdm import tqdm
for i in tqdm(range(int(9e6))):
  pass

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-XnbUf9aE-1604921463438)(C:\Users\Admin\Desktop\test.gif)]

可以看到,當(dāng)我們的代碼的運(yùn)行需要較長(zhǎng)時(shí)間時(shí),進(jìn)度條可以很好的幫助我們了解整個(gè)代碼的運(yùn)行進(jìn)度。

1、安裝

tqdm的安裝十分簡(jiǎn)單,只需要通過(guò)pip或conda就可以安裝。

2、pip安裝

pip install tqdm

3、conda安裝

conda install -c conda-forge tqdm

二、tqdm相關(guān)操作

1、迭代對(duì)象處理

對(duì)于可以迭代的對(duì)象都可以使用下面這種方式,來(lái)實(shí)現(xiàn)可視化進(jìn)度,非常方便。

from tqdm import tqdm
import time
for i in tqdm(range(100)):
  time.sleep(0.1)
  pass
100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:10<00:00, 9.88it/s]

2、觀(guān)察處理的數(shù)據(jù)

通過(guò)tqdm提供的set_description方法可以實(shí)時(shí)查看每次處理的數(shù)據(jù)。

from tqdm import tqdm
import time

pbar = tqdm(["A","B","C","D","E","F"])
for c in pbar:
  time.sleep(1)
  pbar.set_description("Processing %s"%c)

在這里插入圖片描述

3、pandas中使用tqdm

pandas中對(duì)大量數(shù)據(jù)進(jìn)行相關(guān)操作或者遍歷表格的行列時(shí),我們可以使用tqdm來(lái)了解代碼運(yùn)行情況。

import pandas as pd
df = pd.DataFrame({
  'Month':[1,2,3,4,5,2,3,4,5,1,2,3,4],
  'Name':['張三','張三','張三','張三','張三','李四','李四','李四','李四','王五','王五','王五','王五'],
  'Sex':['男','男','女','女','女','男','男','男','男','女','女','女','女']})
for i in tqdm(['Month','Name','Sex']):
  pass
100%|██████████████████████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 4707.41it/s]

4、多進(jìn)程進(jìn)度條

在使用多進(jìn)程或者嵌套循環(huán)處理任務(wù)的時(shí)候,我們通過(guò)tqdm可以實(shí)時(shí)查看每一個(gè)進(jìn)程任務(wù)的處理情況

from tqdm import tqdm
import time
for i in tqdm(range(5), ascii=True,desc="1st process"):
  for j in tqdm(range(5), ascii=True,desc="2nd process"):
    time.sleep(0.01)
1st process:  0%|                                        | 0/5 [00:00<?, ?it/s]
2nd process:  0%|                                        | 0/5 [00:00<?, ?it/s]
2nd process: 100%|#######################################################################| 5/5 [00:00<00:00, 94.27it/s]
2nd process:  0%|                                        | 0/5 [00:00<?, ?it/s]
1st process: 40%|############################4                     | 2/5 [00:00<00:00, 18.09it/s]
2nd process:  0%|                                        | 0/5 [00:00<?, ?it/s]
2nd process: 100%|#######################################################################| 5/5 [00:00<00:00, 93.95it/s]
2nd process:  0%|                                        | 0/5 [00:00<?, ?it/s]
1st process: 80%|########################################################8       | 4/5 [00:00<00:00, 17.99it/s]
2nd process:  0%|                                        | 0/5 [00:00<?, ?it/s]
1st process: 100%|#######################################################################| 5/5 [00:00<00:00, 17.86it/s]

5、自定義進(jìn)度條顯示信息

通過(guò)update方法可以控制每次進(jìn)度條更新的進(jìn)度。

from tqdm import tqdm
import time
#total參數(shù)設(shè)置進(jìn)度條的總長(zhǎng)度為100
with tqdm(total=100) as pbar:
  for i in range(100):
    time.sleep(0.05)
    #每次更新進(jìn)度條的長(zhǎng)度為1
    pbar.update(1)

在這里插入圖片描述

除了上述方法之外,我們還能通過(guò)另外一種方法來(lái)實(shí)現(xiàn)操作。

from tqdm import tqdm
import time
#total參數(shù)設(shè)置進(jìn)度條的總長(zhǎng)度為100
pbar = tqdm(total=100)
for i in range(100):
  time.sleep(0.05)
  #每次更新進(jìn)度條的長(zhǎng)度為1
  pbar.update(1)
#關(guān)閉占用的資源
pbar.close()

在這里插述

另外,我們還能通過(guò)set_descriptionset_postfix方法設(shè)置進(jìn)度條顯示信息。

from tqdm import trange
from random import random,randint
import time

with trange(100) as t:
  for i in t:
    #設(shè)置進(jìn)度條左邊顯示的信息
    #注意:代碼中的HVAE是可以手動(dòng)換成其他內(nèi)容的
    t.set_description("GEN %i"%i)
    #設(shè)置進(jìn)度條右邊顯示的信息  
    #注意:此處代碼中的gen lr lst是可以手動(dòng)換成其他內(nèi)容的
    t.set_postfix(loss=random(),gen=randint(1,999),lr="h",lst=[1,2])
    time.sleep(0.1)
GEN 99: 100%|███████████████████████████████| 100/100 [00:10<00:00, 9.77it/s, gen=190, loss=0.00811, lr=h, lst=[1, 2]]

令人震驚的是,當(dāng)我們將進(jìn)度條顯示的信息設(shè)置中文時(shí),竟然不會(huì)出現(xiàn)亂碼?。。。?/p>

from tqdm import trange
from random import random,randint
import time

with trange(100) as t:
  for i in t:
    #設(shè)置進(jìn)度條左邊顯示的信息
    t.set_description("進(jìn)度 %i"%i)
    #設(shè)置進(jìn)度條右邊顯示的信息  
    t.set_postfix(loss=random(),隨機(jī)=randint(1,999),名字="h",列表=[1,2])
    time.sleep(0.1)
進(jìn)度 99: 100%|████████████████████████████████████| 100/100 [00:10<00:00, 9.75it/s, loss=0.975, 列表=[1, 2], 名字=h, 隨機(jī)=469]

三、其他相關(guān)操作

​ Last but not least!!最后的內(nèi)容是十分重要的!!

1、我們?cè)谑褂胻qdm的時(shí)候,可以將tqdm(range(n))替換為trange(n),讓你的代碼看起來(lái)更加簡(jiǎn)潔而又高大上!

from tqdm import tqdm,trange
import time
for i in trange(100):
  time.sleep(0.1)
  pass
100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:10<00:00, 9.90it/s]

2、當(dāng)我們?cè)?code>jupyter notebook中使用進(jìn)度條時(shí),我們會(huì)發(fā)現(xiàn)整個(gè)進(jìn)度條十分的難看,而在可能會(huì)出現(xiàn)多條進(jìn)度條的情況,這樣會(huì)讓我們的代碼顯得十分的難看,這顯然不是我們想要得到的結(jié)果。

我們先來(lái)感受一下,這種丑丑的運(yùn)行結(jié)果。

from tqdm import tqdm
for i in tqdm(range(int(200))):
  print('tqdm',end=' ')
 0%|                                             | 0/200 [00:00<?, ?it/s]
tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm 
68%|█████████████████████████████████████████████████████▍            | 137/200 [00:00<00:00, 1360.43it/s]

tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm tqdm 100%|██████████████████████████████████████████████████████████████████████████████| 200/200 [00:00<00:00, 1337.14it/s]

\quad 可以看到,上面的代碼我們僅僅打印了兩百次,整個(gè)運(yùn)行結(jié)果就有多個(gè)進(jìn)度條,整體的視覺(jué)效果特別差。如果當(dāng)我們需要進(jìn)行成千上萬(wàn)次迭代時(shí),整個(gè)運(yùn)行結(jié)果將會(huì)不堪入目,比我們未使用進(jìn)度條時(shí)的結(jié)果更加難看,顯然這不是我們想看到的。

tqdm針對(duì)jupyter notebook添加了專(zhuān)門(mén)的進(jìn)度條美化方法,使用tqdm_notebook()方法,我們看看效果:

from tqdm import tqdm_notebook
import time
for i in tqdm_notebook(range(100),desc='demo:'):
  time.sleep(0.01)
  print('tqdm',end=' ')

在這里插入圖片描述

可以看到,整個(gè)運(yùn)行結(jié)果立刻變得美觀(guān)而又清晰了!

​ \quad tqdm在阿拉伯語(yǔ)中的意思是“進(jìn)展”,是python中一個(gè)快速、擴(kuò)展性強(qiáng)的進(jìn)度條工具庫(kù),能讓我們了解代碼的運(yùn)行進(jìn)度,也能讓我們的運(yùn)行結(jié)果看起來(lái)顯得更加美觀(guān)而又高大上?。?喜歡的小伙伴趕緊用起來(lái)吧??!

到此這篇關(guān)于python tqdm實(shí)現(xiàn)進(jìn)度條的示例代碼的文章就介紹到這了,更多相關(guān)python tqdm進(jìn)度條內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)計(jì)算文件夾下.h和.cpp文件的總行數(shù)

    Python實(shí)現(xiàn)計(jì)算文件夾下.h和.cpp文件的總行數(shù)

    這篇文章主要介紹了Python實(shí)現(xiàn)計(jì)算文件夾下.h和.cpp文件的總行數(shù),本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • Django中使用 Closure Table 儲(chǔ)存無(wú)限分級(jí)數(shù)據(jù)

    Django中使用 Closure Table 儲(chǔ)存無(wú)限分級(jí)數(shù)據(jù)

    對(duì)于數(shù)據(jù)量大的情況(比如用戶(hù)之間有邀請(qǐng)鏈,有點(diǎn)三級(jí)分銷(xiāo)的意思),就要用到 closure table 的結(jié)構(gòu)來(lái)進(jìn)行存儲(chǔ)。這篇文章主要介紹了Django中使用 Closure Table 儲(chǔ)存無(wú)限分級(jí)數(shù)據(jù),需要的朋友可以參考下
    2019-06-06
  • 分享Python字符串關(guān)鍵點(diǎn)

    分享Python字符串關(guān)鍵點(diǎn)

    字符串是 Python 中最常用的數(shù)據(jù)類(lèi)型。我們可以使用引號(hào)來(lái)創(chuàng)建字符串,通過(guò)本篇文章給大家分享python字符串關(guān)鍵點(diǎn)相關(guān)資料,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Python實(shí)現(xiàn)B站UP主自動(dòng)監(jiān)控功能詳解

    Python實(shí)現(xiàn)B站UP主自動(dòng)監(jiān)控功能詳解

    眾所周知,B站有很多有趣的UP主,可以教大家一些"實(shí)用"的知識(shí),但是他們一般都沒(méi)有固定的更新時(shí)間。因此,本文將用Python編寫(xiě)一個(gè)腳本,自動(dòng)監(jiān)控UP是否更新了視頻,感興趣的可以了解一下
    2022-03-03
  • Python math庫(kù) ln(x)運(yùn)算的實(shí)現(xiàn)及原理

    Python math庫(kù) ln(x)運(yùn)算的實(shí)現(xiàn)及原理

    這篇文章主要介紹了Python math庫(kù) ln(x)運(yùn)算的實(shí)現(xiàn)及原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python閉包思想與用法淺析

    Python閉包思想與用法淺析

    這篇文章主要介紹了Python閉包思想與用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Python閉包的概念、原理、使用方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • python中sympy庫(kù)求常微分方程的用法

    python中sympy庫(kù)求常微分方程的用法

    這篇文章主要介紹了python中sympy庫(kù)求常微分方程的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 如何使用Django(python)實(shí)現(xiàn)android的服務(wù)器端

    如何使用Django(python)實(shí)現(xiàn)android的服務(wù)器端

    這篇文章主要介紹了Django(python)簡(jiǎn)單實(shí)現(xiàn)android的服務(wù)器端,這里所需要的工具是PyCharm--python編輯工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn)

    Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn)

    這篇文章主要介紹了Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 淺談如何使用Python控制手機(jī)(二)

    淺談如何使用Python控制手機(jī)(二)

    這篇文章主要為大家介紹了如何使用Python控制手機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11

最新評(píng)論