web-dev-qa-db-ja.com

%timeitが異なる回数ループするのはなぜですか?

Jupter Notebookで、最大値のインデックスを見つけるために2つの方法の間でかかった時間を比較しようとしていました。

enter image description here

画像では、最初の関数は1000ループ、2番目の関数は10000ループを取りました。これは、メソッド自体によるループの増加ですOR Jupyterループを追加して、より正確な時間を取得します。 2番目の関数が1000しかかからなかったとしても、ループしますか?

11
user8358924

%timeitライブラリは、スクリプトの実行にかかる時間に応じて実行回数を制限します。

実行回数は-nで設定できます。例:

%timeit -n 5000
df = pd.DataFrame({'High':[1,4,8,4,0]})

5000 loops, best of 3: 592 µs per loop
15
Bharath

使用する -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)
0
Mꜳltus

組み込みのオプション-n: "オプション:-n:指定されたステートメントをループで実行します。この値が指定されていない場合は、適切な値が選択されます。" docs

したがって、指定されていない場合は、ループ自体の数を選択します。

0
Krishal