You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从%timeit -o返回结果中获取耗时测量的标准差

提取%timeit测量结果的标准差数值

%timeit -o 返回的TimeitResult结果对象本身就内置了标准差属性,和你读取平均耗时的用法完全一致,不需要额外计算:

  • 平均耗时读取:result_py.average,单位为秒,对应终端输出的mean值
  • 标准差读取:result_py.stdev,单位为秒,对应终端输出的std. dev.值

直接执行以下代码就能拿到你要的标准差:

print(result_py.stdev)

结合你给出的运行输出样例,这个属性的返回值约为0.00298,和终端显示的2.98 ms数值完全匹配。

如果你的IPython版本较老,没有暴露顶层stdev属性,可以通过对象存储的原始运行数据手动计算,逻辑如下:

  • result_py.all_runs是列表结构,存储了所有重复轮次的运行总耗时,轮次数量对应输出中7 runs的7,单位为秒
  • result_py.loops是整数,代表每一轮运行中重复调用目标函数的次数,对应输出中1 loop each的1
  • 先把每一轮的总耗时换算成单轮单函数调用的平均耗时,再对这个耗时序列计算标准差即可,参考代码:
import statistics
# 换算每轮的单调用耗时
per_run_loop_cost = [run_total / result_py.loops for run_total in result_py.all_runs]
# 计算标准差
calc_stdev = statistics.stdev(per_run_loop_cost)
print(calc_stdev)

内容的提问来源于stack exchange,提问作者Ryo Matsuzaka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:45:07