はじめに
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に標準インストールされていたので、私が無知なだけで有名なのでしょう。
日々勉強です。
ではここらへんで。次の記事でお会いしましょう。