使用pandas和numpy,f1
函数最有效的方法是什么?你知道吗
import numpy as np
import pandas as pd
from time import time
n = 10000
df = pd.DataFrame()
df["a"] = np.random.randn(n)
df["b"] = np.random.uniform(n)
def f1(df):
df.loc[0, "c"] = 100
for i in range(1, len(df)):
df.loc[i, "c"] = df.loc[i, "a"] * df.loc[i, "b"] +\
(1 - df.loc[i, "a"]) * df.loc[i - 1, "c"]
start_time = time()
f1(df)
ellapsed_time = time() - start_time
print(ellapsed_time)
有时
scipy.signal
可以解决这种重复,但我在这里没有找到一个好的解决方案。Nuba解决方案:测试:
90000 x更快,同样可读。你知道吗
相关问题 更多 >
编程相关推荐