2014-12-04 68 views
0

我目前正試圖用python使用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] 

然後這包含在我適合的函數中。

當我嘗試執行我的代碼生成錯誤:類型錯誤:unhashable類型:「numpy.ndarray」

沒有人有任何想法,如何實現擬合程序中查找數據而不是計算它每一次?

回答

0

該錯誤表明變量H是一個numpy數組,它不能用作字典鍵。確保變量H是整數或浮點值。

+0

對不起沒有更清楚,但H必須是一個數組的功能在SciPy工作。它基本上是一個x值的數組,它適合y值。 – 2014-12-05 09:34:50