我在我的python代码中使用了这个循环:
final_fun=[]
for i_base in xrange(n_base):
final_fun.append(sum(fun[:,i_base])/n_ci)
我想知道如何简化这个循环?如果我简化这个循环,我的程序会更快吗?一般来说,我知道如何简化这个,但在这里我被追加阻止了!
答案 0 :(得分:8)
使用列表推导。它更快更清洁。 for循环可以减慢解释器的速度,只需重新排列语法就不会有任何损失。
有关详细信息,请参阅this explanation。
final_fun = [sum(fun[:,i_base])/n_ci for i_base in xrange(n_base)]
答案 1 :(得分:2)
似乎fun
是一个二维NumPy数组。在这种情况下,您可以通过完全避免Python循环来显着简化和加速代码:
final_fun = fun.sum(axis=0) / n_ci
你最终会得到一个NumPy数组而不是一个列表,但无论如何这可能是你想要的。