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

时间:2017-07-28 13:34:26

标签: python pandas ipython jupyter-notebook jupyter

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

enter image description here

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

3 个答案:

答案 0 :(得分:13)

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

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

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

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

答案 1 :(得分:6)

使用-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)

答案 2 :(得分:0)

它有一个内置选项-n: "选项:-n:在循环中执行给定的语句次数。如果未给出此值,则选择拟合值。" docs

如果没有指定,它会自行选择循环次数。

相关问题