In [136]: timeit list(accumu(range(1000)))
10000 loops, best of 3: 161 us per loop
In [137]: timeit list(accumu(xrange(1000)))
10000 loops, best of 3: 147 us per loop
In [138]: timeit np.cumsum(np.arange(1000))
100000 loops, best of 3: 10.1 us per loop
在Python 2中,您可以定义自己的生成器函数,如下所示:
在Python 3.2+中,您可以使用^{} :
请看:
将输出(如预期):
如果您对这样的数组进行了大量的数值计算,我建议使用^{} ,它带有一个累积和函数^{} :
对于这种情况,Numpy通常比纯python快,请参见与@Ashwini's ^{} 的比较:
当然,如果这是你唯一会使用numpy的地方,那么依赖它可能是不值得的。
相关问题 更多 >
编程相关推荐