Tag: 表演

为什么减法比Python中的加法更快?

我正在优化一些Python代码,并尝试了以下实验: import time start = time.clock() x = 0 for i in range(10000000): x += 1 end = time.clock() print '+=',end-start start = time.clock() x = 0 for i in range(10000000): x -= -1 end = time.clock() print '-=',end-start 第二个循环的速度可靠,从晶须到10%的任何地方,取决于我运行的系统。 我试着改变循环的顺序,执行次数等,而且它似乎仍然工作。 陌生人, for i in range(10000000, 0, -1): (即向后运行循环)比 for i in range(10000000): 即使循环内容相同。 是什么给了,这里有一个更一般的编程课?

大pandas:特殊的性能下降后,在dropna重新命名

我已经把这个报告为pandas问题的一个问题 。 同时我在这里张贴这个希望能节省时间,以防遇到类似的问题。 在分析一个需要优化的进程时,我发现重命名不在位的列会提高x120的性能(执行时间)。 分析表明这与垃圾收集有关(见下文)。 此外,通过避免使用dropna方法来恢复预期的性能。 下面的简短例子演示了一个因素x12: import pandas as pd import numpy as np 就地=真 %%timeit np.random.seed(0) r,c = (7,3) t = np.random.rand(r) df1 = pd.DataFrame(np.random.rand(r,c), columns=range(c), index=t) indx = np.random.choice(range(r),r/3, replace=False) t[indx] = np.random.rand(len(indx)) df2 = pd.DataFrame(np.random.rand(r,c), columns=range(c), index=t) df = (df1-df2).dropna() ## inplace rename: df.rename(columns={col:'d{}'.format(col) for col in df.columns}, inplace=True) 100个循环,每个循环最好3:15.6 ms […]