E:\ana\envs\dl\python.exe E:\pythonProject\ADMM\wiene1.py TypeError: float() argument must be a string or a number, not

动态 未结 0 89
小小草
小小草 LV1 2023年9月23日 23:40 发表
这个错误可能是因为在目标函数中使用了一个DataFrame对象,而该对象不能被直接传递给目标函数。您需要将数据转换为NumPy数组或列表,并将其作为参数传递给目标函数。 例如,如果您的数据存储在名为`data`的DataFrame对象中,您可以使用以下代码将其转换为NumPy数组: ```python data_array = data.iloc[:-1].values ``` 然后,您可以将`data_array`作为参数传递给目标函数: ```python def objective_function(x, data): # 使用data_array进行计算 ... ``` 在调用`minimize`函数时,您需要将`data_array`作为额外的参数传递给目标函数: ```python res = minimize(objective_function, [0.1]*11 + [1000], args=(data_array,), method='Nelder-Mead') ``` 请注意,在修改目标函数时,我们添加了一个额外的参数`data`,并在调用`minimize`函数时使用`args`参数将数据传递给目标函数。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复