2017-07-08 54 views
0

我使用numpy的polyfit爲一組數據找到最佳擬合曲線。然而,numpy的polyfit返回一個float64數組,並且因爲計算的係數是如此大/小(即1e-200),所以它返回遇到的溢出錯誤:Numpy Float128 Polyfit

RuntimeWarning:遇到溢出 scale = NX .sqrt((lhs * lhs).sum(axis = 0))

我試着將最初的數組轉換爲float128,但似乎並不奏效。有沒有辦法解決這個溢出問題/處理這種大系數的方法?

+0

你指定什麼程度? – hpaulj

+0

相當大 - 我將它設置爲75,以儘量減少最佳擬合曲線中的振盪。其中一個數據集類似於高斯曲線,但將polyfit設置爲deg = 45時,誤差消失,但最佳擬合曲線振盪得更多。 – Jess

回答

0

您可以使用對數版本的變量(np.log10),因此在處理諸如1e-200之類的東西時,您將擁有-200,更少的內存和更高的效率。

+0

這實際上並不是我通過的變量 - 我認爲這是np.polyfit生成的最適合的線條,這導致了問題。我的實際數據完全在float64的範圍內。如果我追蹤這個錯誤,它會在調用polyfit時產生 – Jess