gpt4 book ai didi

python - python 中的 timeit 模块无法识别 numpy 模块

转载 作者:太空狗 更新时间:2023-10-29 17:56:48 25 4
gpt4 key购买 nike

我想测试 2 个相同列表之间的处理时间,特别是普通列表和 numpy 列表。我的代码是

import timeit
import numpy as np

t = timeit.Timer("range(1000)")
print t.timeit()

u = timeit.Timer("np.arange(1000)")
print u.timeit()

t 的计算很好,但 u 的计算出现 NameError: global name 'np' is not defined 被列出。

我应该如何编码以获得处理时间?

最佳答案

timeit.Timer类可以以两种不同的方式使用。

它可以采用源代码进行编译和执行——在这种情况下,代码在一个全新的环境中执行,其中只有 setup 代码已经运行,或者它可以采用可调用的,在这种情况下,只调用可调用对象(在您当前的环境中,就像任何其他可调用对象一样)。

所以,你有两个选择:

u = timeit.Timer("np.arange(1000)", setup='import numpy as np')

……或者……

u = timeit.Timer(lambda: np.arange(1000))

在第一种情况下,您碰巧执行了 import numpy as np 这一事实是无关紧要的;它对编译和执行 np.arange(1000) 的环境没有影响(因此您必须将它包含在 setup=... 位中)。

在第二种情况下,您执行 import numpy as np 的事实显然 是相关的——它会影响您的代码所在的环境,包括 lambda: np.arange(1000),得到评估。

关于python - python 中的 timeit 模块无法识别 numpy 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com