讲解“Jupyter Notebook中%time和%timeit的使用详解”的完整攻略:
概述
在Jupyter Notebook中,%time
和%timeit
是两个十分有用的命令,它们可以用来测试代码的执行时间,其中:
%time
用于测试单次代码块的执行时间;%timeit
用于重复测试代码块的执行时间,以此来计算平均每个操作所需的时间。
本文将详细讲解%time
和%timeit
的使用方法。
%time
基本使用
%time
命令后面跟随的一般是一条Python语句,它会返回这条语句执行的时间。
示例代码:
%time list(range(1000000))
示例输出:
CPU times: user 13.5 ms, sys: 3.68 ms, total: 17.2 ms
Wall time: 16.7 ms
其中,输出值CPU times
、user
、sys
和total
表示程序在CPU上执行的时间,即程序运行时间,而Wall time
则是程序在墙上时钟上运行的实际时间。
多语句计时
在计时时,你可以使用花括号将多条语句组成一组。
示例代码:
%%time
x = 2
y = x * 2
示例输出:
CPU times: user 5 µs, sys: 2 µs, total: 7 µs
Wall time: 10 µs
输出时间到变量中
你可以将"%time"命令的输出值赋值给一个变量,以便稍后引用。
示例代码:
t = %timeit -o list(range(1000000))
print(t)
%timeit
%timeit
命令用于测试Python语句的执行时间,并可以多次调用语句以得到更加准确的平均时间。默认情况下,%timeit
命令将语句运行10000次。
示例代码:
%timeit list(range(1000000))
示例输出:
97.1 ms ± 3.82 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
这个例子中,%timeit
命令运行了10000次list(range(1000000))
,并且它通常需要97ms左右才能运行。输出值显示了所有执行时间的平均值、标准偏差和每个循环的时间。
你可以通过-n
标志指定调用语句的次数,通过-r
标志指定执行循环的数量。
示例代码:
%timeit -n 5 -r 3 list(range(1000000))
示例输出:
93.7 ms ± 1.04 ms per loop (mean ± std. dev. of 3 runs, 5 loops each)
在这个例子中,%timeit
命令运行了5次list(range(1000000))
,每次都重复进行3次循环,总共进行了15次循环。输出值显示了平均每个循环的时间。
最后,你可以将%timeit
命令输出的结果保存到一个变量中。
示例代码:
t = %timeit -o list(range(1000000))
print(t)
示例输出:
87.7 ms ± 928 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
<TimeitResult : 87.7 ms ± 928 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)>
结果存储在一个TimeitResult对象中,该对象包含经过多次重复的测试的平均时间、标准偏差等信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jupyter Notebook中%time和%timeit的使用详解 - Python技术站