pythonの「tqdm」とはいったい何?簡単な例を用いて具体的な使い方を紹介【初心者でも使えます】
こんにちは、たなです。
「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ループの処理を指定した時間でゆっくり表示させることが出来ます。
このシンプルなコードに「tqdm」を組み込めば「プログレスバー」を表示させることが可能になります。簡単ですよね。
for構文内にある”in”の直後にtqdmを加えるのがポイントです。
”for i in range(10)” が ”for i in tqdm(range(10))”になっている点に注目です。これだけで、プログレスバーを表示させることが出来ます。
まずは簡単な数値例を使ってトライしてみてください。
ファイルの出力で「tqdm」を使ってみる【使い方②】
もう一つ、別の例を紹介しておきます。
機械学習でもよく使うsklearnライブラリにある「アヤメ」のデータセットを使います。中身はなんでもいいのですが「大量データの読み込み→ファイル保存→ファイル出力」ということをやっていきます。
ここではファイルを出力させる際に、tqdmを使ってみたいと思います。
- 大量データの読み込み:アヤメのデータセットを使う
- 読み込んだデータを保存:アヤメのデータをnpyファイルで保存
- ファイル出力:npyファイルを出力
こんな流れになります。
ちなみにnpyファイルというのはnumpy形式の行列値が格納されたファイルのことです。
アヤメのデータセットを準備
最初に、アヤメデータを読み込んでデータフレーム形式として整えておきます。
アヤメのデータセット(label部分)は以下のようになっています。
- labelが0:品種「setosa」
- labelが1:品種「versicolor」
- labelが2:品種「virginica」
今回はlabel列が「0(setosa)」の品種だけにしぼってデータを抽出していきます。そしてsetosaという品種にしぼって、1行ずつデータをnpyファイルに変換しつつ、ファイル出力をしていきます。
その際、出力時間を確かめるために「tqdm」でプログレスバーを表示させるといったイメージになります。
ファイル出力をしている間、上記のようなプログレスバーを表示させることが出来ました。今回のコード内容に特に意味はないので「こんな感じでも使えるのか」と雰囲気を知ってもらえれば十分です。
参考ですが、上記コードの結果出力されたファイルが以下となります。「setosa」フォルダに観測値データ50個のファイルが作られています。
まとめ:tqdmは作業の進捗状況を可視化するプログレスバーとして簡単に使える
本記事をまとめます。
- tqdmを使えば、作業の進捗状況をプログレスバーとして可視化できる
- for構文の場合は、inの後にtqdmを入れるだけで簡単に使える
- タスクを可視化したい場合には積極的に使ってみよう
こんな感じになります。
簡単なデータ分析では正直あまり使う機会はありませんが、機械学習や深層学習といったビッグデータを扱う場面では絶対に使えた方がいいです。
冒頭でも紹介しましたが、pythonの学習方法を【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】でまとめています。良ければあわせて読んでみてください。
【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】
pythonを極めたいすべての人に贈る学習ロードマップ。おすすめの学習サイトをレベル別に紹介しているので、pythonのレベルをあげていきたいと考えるすべての人に読んで欲しい記事です。これさえ読めば、自分に合っている学習方法やこれから目指すべき方向性がわかります。pythonライフ、楽しんでいきましょう。
良いpythonライフを。