Tim*_*ote 3 python ipython timeit python-3.x
我是Python的新手,正在尝试绘制两个函数的计算速度。例如,定义了两个函数(见下文),如何使用IPython / Jupyter中的timeit函数返回每次迭代的时间?
def func1(x) : 
    return x*x
def func2(x) :
    return x+x
%timeit for x in range(100) : func1(x)
%timeit for x in range(100) : func2(x)
我阅读了https://ipython.org/ipython-doc/3/interactive/magics.html,可以使用'-o'返回“可以存储在变量中的TimeitResult,以更详细地检查结果”。
但是,如何将其保存到变量“ func1_time”中?如何读取每次迭代的时间?我的目标是为两个函数绘制x与时间的关系。
任何帮助都感激不尽。谢谢。
您只需执行以下操作:
func1_time = %timeit -o func1(10)
您可以通过以下方式访问每次迭代的时间
func1_time.timings
每个循环花费的总时间为
func1_time.all_runs
请注意,您的循环不是必需的,因为在循环中%timeit执行代码N时间并迭代该循环r时间。
如果您需要用于不同argumets的计时x,则可以尝试以下操作:
func1_time = []
for i in [10, 100, 1000]:
    foo =  %timeit -o func1(x)
    func1_time.append(foo)
然后func1_time[0].timings保存的时间func1(10)。
如果这样做,我建议指定r和N选项,因为%timeit这会使循环数适应问题的复杂性。这意味着,按时执行功能所需的时间越长,运行的循环就越少。
| 归档时间: | 
 | 
| 查看次数: | 1117 次 | 
| 最近记录: |