python循环速度慢的原因很多文章有提,numba可以通过numba加速。
但是无法通过numba加速则必须关心自身的代码怎么写了。
偶然发现特别多的人喜欢在for中循环拼接。
简单举个例子,使用datetime计算时间(不十分准确)
A = numpy.arange(120)
if __name__=='__main__':
b = datetime.datetime.now()
for i in range(0,int(1e3)):
r = []
for kkk in range(0+5,len(A)):
r += [ numpy.mean(A[kkk-5:kkk]) ]
if __name__=='__main__':
e=datetime.datetime.now()
#
t1=(e-b)
t1
执行时间为datetime.timedelta(microseconds=766750)
for i in range(0,int(1e3)):
r = numpy.zeros(len(A)-5)
for kkk in range(0+5,len(A)):
r[kkk] = [ numpy.mean(A[kkk-5:kkk]) ]
执行时间只有datetime.timedelta(microseconds=460086)