python pythonコード集 python データサイエンス 非エンジニア向け

pythonの「tqdm」って何?簡単な例を用いて使い方を紹介

こんにちは、TAKです。
今回は、pythonで使えるライブラリ「tqdm」について紹介していきたいと思います。

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

データサイエンス領域やビッグデータを扱う場面において、「データを読み込むのにあとどれくらい時間がかかるんだろう」とか、「加工データをファイルとして出力するのにどれくらい時間がかかるか知りたい」といった時に使える方法となります。

【こんな人に読んで欲しい記事です】

● pythonライブラリ「tqdm」の使い方を知っておきたい方

● 自分で書いたコードの処理状況や進捗状況を「プログレスバー」として表示させたい方

自分が日頃書いているコードに簡単に組み込むことが出来るので、「pythonを始めたばかり」という方でも是非チャレンジしてみてください。

ステータスバーを表示させることで、見た目も多少カッコ良くなるので、モチベーションアップにも繋がるかもしれません。

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

まず最初に、今回使うライブラリをインポートしておきます。

今回の目的である「プログレスバー」を表示させるためには「tqdm」だけで十分ですが、イメージしやすいように他のライブラリも合わせてインポートしています。

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

「tqdmは初めて使うよ!」という方は、pipコマンドで別途インストールするようにしてください。
(既にインストールされていればOKです。)

tqdmの使い方①|数字を表示させる

最初はシンプルな例を用いて使い方を紹介します。
数字「0」から「9」までを表示させる場合、コードは以下のようになりますね。

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

このシンプルなコードに「tqdm」を組み込むと、以下のようになります。
ポイントは「for文のin直後にtqdmを加える」点です。

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

シンプルですが、この使い方さえわかれば色々と応用が効くので試してみてください。

tqdmの使い方②|データセットをファイルに保存

もう一つ、別の例を紹介しておきます。
何かしらの「処理」に関する進捗状況を「プログレスバー」として表示する点は(当然)同じです。

ここでは、sklearnライブラリのデータセット「アヤメデータ」を「npyファイル」として保存する処理をしていきたいと思います。「npyファイル」というのは、簡単に言えばnumpy形式の行列値が格納されたファイルです。

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

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

続いて、「label」が「0(setosa)」の品種だけを対象に、1行ごとにnpyファイルに変換していく処理をしていきます。この時に、ファイル出力に要する時間を把握する目的で「tqdm」を組み込むイメージです。

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

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

参考程度ですが、上記コードの結果出力されたファイルが以下です。
「setosa」フォルダに観測値分の合計50個のファイルが作られているのがわかります。

【参考】npyファイルの出力結果(1/2)
【参考】npyファイルの出力結果(2/2)

さいごに

今回は、コードの処理状況を「プログレスバー」として表示する「tqdm」という方法を紹介してきました。

pythonに限った話ではありませんが、プログラミングスキルが上がれば上がるほど扱うデータも複雑になり、処理状況に時間がかかるケースは増えてきます。

そんな時こそ、プログレスバーを利用して「状況の可視化」をしてみてください。

では今回はこのへんで。