我目前正在尝试使用scipy.optimize.leastsq在python中使用一些数据。我想要符合的数据是:
Mag(H,F,L) = F*sigmap(H) - sigman(H,L)
Sigmap是一个数字积分,它是H的函数,需要很长时间才能计算出来。我不希望将积分作为拟合程序的一部分包含在内,否则积分将重复执行并显着增加拟合程序的时间。因此,我想从其他地方查找积分的值。我用来实现这个的代码是:
integral = np.loadtxt(text file of form: H_Value Integral_Value)
lookupintegral = dict(integral)
sigmap = F*lookupintegral[H]
然后将其包含在我适合的功能中。
当我尝试执行代码时,我生成错误:TypeError:unhashable type:'numpy.ndarray'
有没有人对如何实现查找数据而不是每次计算数据的拟合例程有任何想法?
答案 0 :(得分:0)
该错误表明变量H是一个numpy数组,它不能用作字典键。确保变量H是整数或浮点值。