gpt4 book ai didi

python - 不可散列类型 : 'numpy.ndarray' for optimization

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:15 24 4
gpt4 key购买 nike

我正在使用 scipy.optimize 库对我生成的数据集执行优化以找出最佳拟合线。但我收到错误消息“无法散列的类型:'numpy.ndarray'”

import numpy as np
import pandas as pd
import scipy.optimize as spo
import matplotlib.pyplot as plt

def error(data, line):
error=np.sum((data[:,1]-(line[0]*data[:,0]+line[1]))**2)
return error

def fit_line(data, error_func):
l=np.float32([0, np.mean(data[:,1])])
min_result=spo.minimize(error_func, l, args={data,}, method="SLSQP", options={"disp":True})
return min_result.x

if __name__=="__main__":
l_orig=np.float32([4,2])
xorig=np.linspace(0,10,21)
yorig=l_orig[1]*xorig + l_orig[0]

np.random.seed(788)
noise=np.random.normal(0, 3.0, yorig.shape)
data=np.asarray([xorig, yorig+noise]).T

result=fit_line(data, error)

最佳答案

函数scipy.optimize.minimize接受额外参数的元组,而不是集合。变化:

min_result=spo.minimize(error_func, l, args={data,}, method="SLSQP", options={"disp":True})

到:

min_result=spo.minimize(error_func, l, args=(data,), method="SLSQP", options={"disp":True})

关于python - 不可散列类型 : 'numpy.ndarray' for optimization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39290544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com