たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

pythonの「tqdm」とはいったい何?簡単な例を用いて具体的な使い方を紹介【初心者でも使えます】

PR Pythonを学ぶ

こんにちは、たなです。

「pythonのtqdmって一体なに?どうやって使うの?」
今回はそんな悩みにお答えします。

結論からお伝えすると、tqdmは進捗状況や処理状況をプログレスバー(ステータスバー)として表示する機能のことを言います。

たとえばデータ分析で「データを読み込む時間」「ファイル出力にかかる時間」「モデル構築の時間」を知りたいといった場面で使える方法となります。

本記事の内容

  • tqdmを使って数字を順番に表示させる
  • tqdmを使ってファイル出力状況を可視化する

この2つの内容を紹介していきます。

日頃書いているコードにtqdmを組み込むだけで、簡単にプログレスバーを表示させることが出来ます。ステータスバーを表示させるとかっこいいので、ひそかにモチベアップにもつながります。python初心者の方でもすぐ出来るようになりますよ。

僕のブログでは【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】という記事も公開しています。より高みを目指したい人は参考にしてみてください。

pythonの学習ロードマップへ

pythonの「tqdm」とは何か?具体的な使い方を紹介


tqdmは進捗状況を可視化するプログレスバーです。
ライブラリをインポートして、for構文に組み込めば簡単に使えます。

必要ライブラリのインポート

まずはtqdmをpipコマンドでインストールしておきましょう。

pip install tqdm

続いて、tqdmを使うために必要なライブラリをインポートします。

from tqdm import tqdm

tqdmのライブラリだけインポートすればOKですが、今回はデータをわかりやすく見せるために、他のライブラリもインポートしています。

今回使うライブラリのインポート

数字の表示で「tqdm」を使ってみる【使い方①】

まず最初にシンプルな例から。

for構文を使って、数字の0から9を表示させてみましょう。
コードは以下のようになりますね。

ライブラリ「time」を使うことで、forループの処理を指定した時間でゆっくり表示させることが出来ます。

数字「0」から「9」を表示させるコード


このシンプルなコードに「tqdm」を組み込めば「プログレスバー」を表示させることが可能になります。簡単ですよね。

for構文内にある”in”の直後にtqdmを加えるのがポイントです。

【具体例①】 「tqdm」の使い方イメージ


”for i in range(10)” が ”for i in tqdm(range(10))”になっている点に注目です。これだけで、プログレスバーを表示させることが出来ます。

まずは簡単な数値例を使ってトライしてみてください。

ファイルの出力で「tqdm」を使ってみる【使い方②】

もう一つ、別の例を紹介しておきます。

機械学習でもよく使うsklearnライブラリにある「アヤメ」のデータセットを使います。中身はなんでもいいのですが「大量データの読み込み→ファイル保存→ファイル出力」ということをやっていきます。

ここではファイルを出力させる際に、tqdmを使ってみたいと思います。

  • 大量データの読み込み:アヤメのデータセットを使う
  • 読み込んだデータを保存:アヤメのデータをnpyファイルで保存
  • ファイル出力:npyファイルを出力

こんな流れになります。

ちなみにnpyファイルというのはnumpy形式の行列値が格納されたファイルのことです。

アヤメのデータセットを準備

最初に、アヤメデータを読み込んでデータフレーム形式として整えておきます。

アヤメデータセットをpandasを用いてDataFrameとしておく


アヤメのデータセット(label部分)は以下のようになっています。

  • labelが0:品種「setosa」
  • labelが1:品種「versicolor」
  • labelが2:品種「virginica」

今回はlabel列が「0(setosa)」の品種だけにしぼってデータを抽出していきます。そしてsetosaという品種にしぼって、1行ずつデータをnpyファイルに変換しつつ、ファイル出力をしていきます。

その際、出力時間を確かめるために「tqdm」でプログレスバーを表示させるといったイメージになります。

【具体例②】 「tqdm」の使い方イメージ


ファイル出力をしている間、上記のようなプログレスバーを表示させることが出来ました。今回のコード内容に特に意味はないので「こんな感じでも使えるのか」と雰囲気を知ってもらえれば十分です。

参考ですが、上記コードの結果出力されたファイルが以下となります。「setosa」フォルダに観測値データ50個のファイルが作られています。

npyファイルの出力結果(計50個分)

まとめ:tqdmは作業の進捗状況を可視化するプログレスバーとして簡単に使える


本記事をまとめます。

  • tqdmを使えば、作業の進捗状況をプログレスバーとして可視化できる
  • for構文の場合は、inの後にtqdmを入れるだけで簡単に使える
  • タスクを可視化したい場合には積極的に使ってみよう

こんな感じになります。

簡単なデータ分析では正直あまり使う機会はありませんが、機械学習や深層学習といったビッグデータを扱う場面では絶対に使えた方がいいです。

冒頭でも紹介しましたが、pythonの学習方法を【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】でまとめています。良ければあわせて読んでみてください。

良いpythonライフを。