LoginSignup
3
0

pythonでプログレスバーを表示【tqdm】

Posted at

はじめに

qiitaの住人のみなさま、あけましておめでとうございます!
2024年は元旦から不幸なニュースばかりですが、少しでも前を向きながら生きていきたいものです。
(私は胃腸炎で元旦から寝込むというスタートダッシュを切りました)

さて、最近は機械学習コンペにちょこちょこ参加しています。nishika様、お世話になっております(手コネコネ)。
勉強をしていく中で、pythonでプログレスバーを表示させる「tqdm」なるライブラリを見つけたので、少しご紹介します(n番煎じですがご容赦)。
ビッグデータの機械学習は長い処理が多くなるので、進捗を可視化するのに便利です。

tqdmとは

由来

tqdm はPythonで利用可能な便利なライブラリで、長い処理の進捗状況をプログレスバーとして表示することができます。公式サイトによると、この名前はアラビア語の「taqadum」(進行、進捗)から来ていて、スペイン語の「te quiero demasiado」(I love you so much)の略語らしいです。おっしゃれ~♪

好きな人に勇気が出なくて告白できない方、パートナーに小恥ずかしくて愛を伝えられない方は「tqdm」とだけLINEに打って、そっと送りましょう。

これがLove&Peace、違うかい?

ではここらへんで。次の記事でお会いしましょう。


間違えました、記事を終わろうとしてしまいました。でももうサビは終わったので以下は読まなくてもいいです。

tqdm の主な特徴

簡単な使用法:tqdm は、forループに簡単に組み込むことができ、特別な変更を加える必要はありません。ループ内の各イテレーションの進捗状況を視覚的に追跡することができます。

柔軟性:さまざまな設定が可能で、プログレスバーの外観や情報の表示方法をカスタマイズできます。

広範な互換性:標準のforループのほか、リスト内包表記やPandasのデータフレーム操作など、多様な状況で使用することができます。

効率性:プログレスバーの表示が処理速度にほとんど影響を与えないため、パフォーマンスに悪影響を及ぼすことはほとんどありません。

tqdmの使い方

非常に簡単です。いつもの for i in hoge:for i in tqdm(hoge): にするだけです。

from tqdm import tqdm
import time

for i in tqdm(range(10)):
    time.sleep(1) 
出力
100%|██████████| 10/10 [00:10<00:00,  1.00s/it]

pandasのデータフレームの処理にtqdmを組み込むこともできます。
desc引数で処理の説明を追加しています。

import pandas as pd
from tqdm import tqdm

# データフレームの作成
df = pd.DataFrame({'A': range(1, 11), 'B': range(11, 21)})

# tqdmを用いたデータフレームの処理
for index, row in tqdm(df.iterrows(), total=df.shape[0], desc="Processing rows"):
    time.sleep(2)  
出力
Processing rows: 100%|██████████| 10/10 [00:20<00:00,  2.00s/it]

主な引数

desc: str
プログレスバーの前に表示される説明テキスト(例:desc="Loading")。
total: int or float
イテラブルの総要素数。自動的に検出されますが、明示的に設定することもできます。
leave: bool
プログレスバーが終了した後も表示を残すかどうか(Falseの場合100%になったらバーが消失)。
ncols: int
プログレスバーの幅(文字数)。自動的に調整されますが、数値で指定することもできます。
mininterval: float
プログレスバーの最小更新間隔(秒)[デフォルト:0.1]。

おわりに

まだまだ知らないライブラリがたくさんありますね。tqdmもGooglColabに標準インストールされていたので、私が無知なだけで有名なのでしょう。
日々勉強です。

ではここらへんで。次の記事でお会いしましょう。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0