私は営業ですが、提案材料や各数値の分析でJupyterNotebookを使うことがあります。
スクレイピングする時なんかは進捗具合が分かると作業が楽になるので、確認の方法をまとめておきます。
エンジニアの方だと当たり前すぎる内容だと思いますが、非エンジニアだとプログレスバーという言葉すら知らずに触っていると思うのでご参考まで。
他にいいやり方があれば、是非教えて下さい!
#進捗確認Tips
まず下準備
import time
###1. printで処理ごとに表示
僕のような初学者はこれで十分かもしれません。笑
for i in range(100):
time.sleep(0.1)
if i % 10 == 0:
print(i)
###2. tpdmを使う
tqdmが一番使われているプログレスバーかと思いますが(知らんけど)、range部にtqdm()します。
ノーマルのものとリッチなものを、2つ紹介。
from tqdm import tqdm
for i in tqdm(range(100)):
time.sleep(0.1)
from tqdm import tqdm_notebook as tqdm
for i in tqdm(range(100),desc='進捗具合', leave=False):
time.sleep(0.1)
desc='進捗具合', leave=False このオプションでラベル付けと、処理が終わった時にプログレスバーが非表示になります。
その他オプションは、画像つきのコチラで見れます。
https://github.com/tqdm/tqdm/tree/master/images
###3. FloatProgressを使う
FloatProgressは、min-maxで枠を作って、valueでiずつ動かしてdisplayで表示しているので、ちょっとめんどくさい。
色を変えたり、その他引数はコチラを参照。
https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20List.html
from IPython.html.widgets import FloatProgress
from IPython.display import display
fp = FloatProgress(min=0, max=100, description='進捗具合:')
display(fp)
for i in range(100):
time.sleep(0.1)
fp.value = i
###4. 分割した処理の時間を計算して、目安時間を出す
これはちょっと色が違いますが、マジックコマンドで1/10ぐらいに分割した処理の時間を測って、おおよその全体時間を予想する。
%%timeit
for i in range(10): #1/10の処理
time.sleep(0.1)
▼ JupyterNotebook
予想...(この処理で1秒ぐらい...全体で10秒ほどかな...?)
※マジックコマンドについてはこちらの記事を参考にさせていただきました。
http://www.procrasist.com/entry/6-jupyter
順次更新予定です!