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