Python 使用两个单独的变量存储嵌套for循环中的值
我目前希望存储在嵌套for循环中创建的变量:Python 使用两个单独的变量存储嵌套for循环中的值,python,python-3.x,statsmodels,Python,Python 3.x,Statsmodels,我目前希望存储在嵌套for循环中创建的变量: for param in pdq: for param_seasonal in seasonal_pdq: mod = sm.tsa.statespace.SARIMAX(y, order=param, seasonal_order=param_seasonal, enforce_stationarity=False, enforce_invertibility=False) results = mod.fit
for param in pdq:
for param_seasonal in seasonal_pdq:
mod = sm.tsa.statespace.SARIMAX(y, order=param, seasonal_order=param_seasonal, enforce_stationarity=False, enforce_invertibility=False)
results = mod.fit()
在上面的例子中,我需要得到产生最佳结果的param
和param_
。我一直在尝试不同的数据结构,但没有找到任何有效的方法,更不用说是pythonic了
我想要的结果是从
mod
中获得最佳结果,并且能够使用相应的param
和param\u
作为不同函数中的参数。如果我对您的问题的理解是正确的,那么下面的示例应该可以做到这一点
想象
- a是param
- b是季节性的吗
- ans是mod
def示例函数(a,b):
返回(-a-b+(a**2)+(b**2))
最佳分数=0
最佳值a=0
最佳b=0
对于[1,2,3,4]中的a:
对于[5,6,7,8]中的b:
答案=示例_func(a,b)
如果答案>最佳分数:
最佳分数=答案
最好的
最佳b=b
打印(最佳成绩)
印刷品(最佳印刷品)
打印(最佳)
输出为
68
4
8
这意味着68是最好的值,用a=4和b=8计算
假设答案越高越好,但如果答案越低越好,则很容易修改
然后,您可以在for循环的外部和下方使用best_a和best_b将所需的变量传递给您想要的任何函数当我进行参数调整时,我将结果存储在字典或数据帧中,但大部分是数据帧,因为您可以更灵活地进行进一步处理(ofc您以后也可以从字典中创建数据帧) 然后,通过如下方式查找最佳参数的索引,可以获得最佳结果/参数:
print(df_parameter_tuning.loc[df_parameter_tuning["results"].argmax()])
这样做的好处是,您还可以探索其他参数及其结果,比如打印它们以查看模式或其他要探索的数据点
print(df_parameter_tuning.loc[df_parameter_tuning["results"].argmax()])