我正在尝试通过循环生成一个rmse值的方法来创建一个rmse值数组。我可以理解为什么附加的值最终会替换整个数组。但是,我不确定如何更改它以使其工作...
这是代码:
preds = np.asarray(prediction_Arr)
GSPC = pdr.get_data_yahoo('^GSPC',
start=datetime.datetime(2019, 1, 1),
end=datetime.datetime(2019, 1, 31))
real = np.asarray(GSPC['Close'][0:])
rmse=np.sqrt(np.mean(np.power((real - preds),2)))
print(rmse)
rmse_values.append(rmse)
print(rmse_values)
这是要求的最低限度的完整验证:
b = []
x = 1
for f in range(0,3):
x = x + 1
print(x)
b.append(x)
如果我执行“打印(b)” 我得到[4]
但是我想看[2,3,4],我希望数组包含x在范围内的所有值。
希望这很清楚
答案 0 :(得分:0)
也许rmse_values
是在循环范围内定义的,因此它不是替换值,而是在每次迭代中重新定义。
您需要在循环之外定义它,使用您的代码(有一些假设),就像这样:
rmse_values = []
for prediction_Arr in prediction_Arrs:
preds = np.asarray(prediction_Arr)
GSPC = pdr.get_data_yahoo('^GSPC',
start=datetime.datetime(2019, 1, 1),
end=datetime.datetime(2019, 1, 31))
real = np.asarray(GSPC['Close'][0:])
rmse = np.sqrt(np.mean(np.power((real - preds),2)))
print(rmse)
rmse_values.append(rmse)
print(rmse_values)
答案 1 :(得分:0)
您不会在循环内添加
b = []
x = 1
for f in range(0,3):
x = x + 1
print(x)
b.append(x) #this needs to be inside the loop.
print b