在Jupter Notebook上,我试图比较两种方法之间的时间来找到最大值的索引。
在Image中,第一个函数占用了1000个循环,第二个函数占用了10000个循环,这是由于方法本身的循环增加或者Jupyter只是添加了更多循环以获得更准确的每个循环时间,即使第二个函数也许只花了1000,是这样吗?
答案 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
如果没有指定,它会自行选择循环次数。