%timeit [i **2 for i in range(1000)]
print('*******')
%timeit np.arange(1000) ** 2
1000 loops, best of 3: 376 µs per loop
*******
The slowest run took 11.43 times longer than the fastest. This could
mean that an intermediate result is being cached.
100000 loops, best of 3: 2.76 µs per loop
我的直觉是numpy的应通过整个阵列迭代一次和正方形的每个元素。那么为什么timeit说numpy代码循环100000次。
您还没有看过'timeit'模块的功能。阅读文档! “循环”并不是指你测试的代码做了什么,而是代码执行的频率。 –
循环计数是定时器执行的次数。对于需要较少时间的代码,定时器运行的次数更多。你的第二个代码更快,因此定时器决定运行更多次。 – Divakar