有人可以向我解释这些结果吗?纯Python似乎花费的时间少于 元素指数的numpy表达式。
In [224]: ar=np.arange(1000)
%timeit a**4
100000 loops, best of 3: 5.22 µs per loop
In [225]: ar=range(1000)
%timeit [ar[i]**4 for i in ar]
1000 loops, best of 3: 205 µs per loop
Numpy总时间= 100000 * 5.22 =522000μs
纯Python总时间= 1000 * 205 =205000μs
答案 0 :(得分:4)
纯Python版本的定时时间较少。这并不意味着它更快;这意味着timeit
停止运行它,因此获取结果不需要60秒*。您可以从每个循环时间看到NumPy版本快40倍。
*每个循环200微秒* 100,000个循环* 3个重复的定时过程
答案 1 :(得分:1)
您将1,000次运行的结果与100,000次运行的结果进行比较。 numpy版本运行100,000次,每次耗时5.22μs。 Python版本只运行了1,000次,每个循环花费了205μs。
因此,虽然整体时间可能更大,但numpy的个体每次手术时间减少了约40倍。