为什么%timeit循环次数不同?

8 python ipython pandas jupyter jupyter-notebook

在Jupter Notebook上,我试图比较两种方法之间的时间来找到具有最大值的索引.

在此输入图像描述

在Image中,第一个函数占用了1000个循环,第二个函数占用了10000个循环,这是因为方法本身的循环增加或者Jupyter只是添加了更多循环以获得更准确的每个循环时间,即使第二个函数可能需要1000个循环只是,是这样吗?

Flo*_*oor 14

%timeit 库将限制运行次数,具体取决于脚本执行的时间.

可以使用-n设置运行次数.例:

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

5000 loops, best of 3: 592 µs per loop
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的解释..我只是想我应该在这里向其他人提及..“ipython”文档中有一个拼写错误..尚未得到纠正。如果未提及“-r”,“ipython”的最新版本默认为“7”循环。 (2认同)

Mai*_*ret 7

用于-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)
Run Code Online (Sandbox Code Playgroud)