2016-04-01 68 views
0

我有一個數據數組,當繪製時,高原處於最大值。我想爲這些數據生成一個高斯擬合,所以我可以粗略地近似一下沒有高原時的數據。Python將高斯擬合爲不完整的數據數組

這是數據的樣子:

Saturated Data

我想使用scipy.optimize.curve_fit - 但我不知道該如何實現最終的結果,因爲我想,以適應高斯忽略了高原飽和的數據。

回答

1

沒有關於您自己的解決方案的更多細節,它有點在黑暗中抓住,但我認爲numpy.ma可能是你在追求什麼。有了它,您可以掩蓋部分數據,文檔甚至可以這樣說:

在許多情況下,數據集可能由於存在無效數據而不完整或受到污染。例如,傳感器可能未能記錄數據,或記錄無效值。 numpy.ma模塊通過引入掩碼數組提供了一種解決此問題的便捷方法。

應用一個蒙版,隱藏飽和部分並運行你的配件。例如:

In [4]: data = np.arange(10) 

In [5]: np.ma.masked_greater_equal(data, 6) 
Out[5]: 
masked_array(data = [0 1 2 3 4 5 -- -- -- --], 
      mask = [False False False False False False True True True True], 
     fill_value = 999999) 

顯然你會用你的飽和度作爲閾值。