はじめに
lmfitは非線形最小二乗法を用いてカーブフィットするためのライブラリであり、Scipy.optimize.curve_fitの拡張版に位置する。ここでは、データにNaNを含む場合、どのようにカーブフィッティングするかを選択する方法について説明する。
コード
解説
モジュールのインポートなど
バージョン
関数の定義
指数関数的減衰関数を定義する。
データの生成
np.linspace(0, 10, num=1000)で1000このデータを作成して、関数に入れてデータを作成する。np.random.randn(t.size)/2でノイズを加えた。
その後、データの一部をNaNにする。
nan_policy=”raise”でフィッティング
データにNaNがあるので、ValueErrorが返ってくる。
nan_policy=’omit’でフィッティング
NaNを除外したデータでフィッティングが行われる。
結果を図示すると以下のようになる。
nan_policy=’propagate’でフィッティング
フィッティングは行われない。
パラメータは初期値のままとなる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Non-Linear Least-Squares Minimization and Curve-Fitting for Python — Non-Linear Least-Squares Minimization and Curve-Fitting for Python
Modeling Data and Curve Fitting — Non-Linear Least-Squares Minimization and Curve-Fitting for Python
コメント