【发布时间】:2020-10-04 09:39:14
【问题描述】:
我有一个函数,它是一个更大的无穷大的一部分。我发现该函数将循环减慢到最终我的计算机将完全冻结的程度。
import numpy as np
from time import time
def make_fps(d, F, df_f, state, t_start, PHASE, run_num):
F += 1
if F < 100:
fps = np.NaN
fps_average = np.NaN
else:
fps = round(F / (time() - t_start), 2)
fps_average = np.NaN
if F > 200:
fps_average = round(df_f["fps"].mean(), 2)
df = {'frame number': [F], 'fps': [
fps], 'fps average': [fps_average], 'state': [state], 'run number': [run_num]}
df_new = pd.DataFrame(data=df)
df_f = df_f.append(df_new)
print("frame number", F, "fps", fps, "average fps",
fps_average, "run number", run_num)
return df_f, F, fps, run_num, fps_average
df_f = pd.DataFrame()
state = "this is a test"
t_start = time()
d, F, PHASE, run_num = 0,0, 0, 0
while True:
df_f, F, fps, run_num, fps_average = make_fps(d, F, df_f, state, t_start, PHASE, run_num)
print (F, fps, fps_average)
我认为构建 DataFrame 会导致问题。另外,这个功能会从实现生成器中受益吗?我是 python 新手,不清楚如何正确应用生成器。
谢谢!
【问题讨论】:
-
请解释一下你打算做什么......
-
这个函数用在更大的应用程序中。目标是计算循环的速度 (fps)、循环的平均速度 (fps_average) 并构建一个稍后将保存到 .cvs 文件的数据帧。构建数据框会不会有问题?