ScyPy の interpolate モジュール interp1d クラスで補間
Python のライブラリ ScyPy の interpolate モジュールには,様々な補間法に対応したクラスが用意されています。
その中の一つである interp1d クラスを使って補間を行います。
補間の種類
interp1d クラスには,様々な補間方法が指定できます。今回は,以下の補間方法を使ってみます。
kind | 説明 |
---|---|
‘liner’ | 線形補間。kind を指定しない場合は ‘liner’ となる(デフォルト)。 |
‘zero’ | 0 次スプライン補間 |
‘slinear’ | 1 次スプライン補間 |
‘quadratic’ | 2 次スプライン補間 |
‘cubic’ | 3 次スプライン補間 |
interp1d の構文
scipy.interpolate.interp1d は,補間処理を実行するインスタンスを生成できます。
scipy.interpolate.interp1d(
x, y,
kind='linear',
axis=-1,
copy=True,
bounds_error=None,
fill_value=nan,
assume_sorted=False
)
補間するデータ
補間を行うデータを用意します。今回は,全天日射量のデータを用意しました。
TIMESTAMP と全天日射量 (globalSolarRadiation) の CSV です。30 分周期の時系列データとなっています。
TIMESTAMP,globalSolarRadiation
2024/5/29 6:00,13
2024/5/29 6:30,101
2024/5/29 7:00,162
2024/5/29 7:30,181
2024/5/29 8:00,288
2024/5/29 8:30,179
2024/5/29 9:00,465
2024/5/29 9:30,744
2024/5/29 10:00,863
2024/5/29 10:30,939
2024/5/29 11:00,980
2024/5/29 11:30,1022
2024/5/29 12:00,994
2024/5/29 12:30,1013
2024/5/29 13:00,814
2024/5/29 13:30,770
2024/5/29 14:00,628
2024/5/29 14:30,652
2024/5/29 15:00,498
2024/5/29 15:30,704
2024/5/29 16:00,571
2024/5/29 16:30,502
2024/5/29 17:00,371
2024/5/29 17:30,282
2024/5/29 18:00,184
interp1d で補間
interp1d で補間を行います。5 分周期で補間を行ってみます。
以下,青丸が元データ,赤丸が補間したデータです。青丸の間に 5 つの赤い点があります。(例えば,0 分と 30 分の間は,5 分,10 分,15 分,20 分,25 分が補間される。)
線形補間
線形補間した結果を示します。青丸の点を直線で結んだところに赤丸がプロットされています。

0 次スプライン補間
0 次スプライン補間した結果を示します。0 次スプライン補間では,青丸の 5 分後,10 分後,15 分後,20 分後,25 分後に同じ大きさの赤丸が補間されます。

1 次スプライン補間
1 次スプライン補間した結果を示します。1 次スプライン補間した結果は,線形補間した結果と同じになります。

2 次スプライン補間
2 次スプライン補間した結果を示します。

3 次スプライン補間
3 次スプライン補間した結果を示します。

まとめ
ScyPy の interpolate モジュール interp1d クラスで補間した結果を紹介しました。
Python の ScyPy ライブラリを用いると,簡単に補間が行えるので,大変便利です。