Jupter Notebookで、最大値のインデックスを見つけるために2つの方法の間でかかった時間を比較しようとしていました。
画像では、最初の関数は1000ループ、2番目の関数は10000ループを取りました。これは、メソッド自体によるループの増加ですOR Jupyterループを追加して、より正確な時間を取得します。 2番目の関数が1000しかかからなかったとしても、ループしますか?
%timeit
ライブラリは、スクリプトの実行にかかる時間に応じて実行回数を制限します。
実行回数は-nで設定できます。例:
%timeit -n 5000
df = pd.DataFrame({'High':[1,4,8,4,0]})
5000 loops, best of 3: 592 µs per loop
使用する -r
実行の数を制限するには:
import time
%timeit -r1 time.sleep(2)
# 2 s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
%timeit -r4 time.sleep(2)
# 2 s ± 800 µs per loop (mean ± std. dev. of 4 runs, 1 loop each)
%timeit time.sleep(2)
# 2 s ± 46.5 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
組み込みのオプション-n: "オプション:-n:指定されたステートメントをループで実行します。この値が指定されていない場合は、適切な値が選択されます。" docs
したがって、指定されていない場合は、ループ自体の数を選択します。