はじめに
jupyter notebookでは対話的にパラメータを調整できる機能(ipywidgets)がある。ここでは、その機能の一つであるRadioButtonsを使って、Scipyのinterpolate interp1dの補間方法を選択する方法について説明する。
コード
解説
モジュールのインポート
データの生成
np.linspace()により、0から20を11 等分した配列を生成する。
np.random.rand()により、0から1のランダムな要素をもち、要素数が11個の配列を生成する。
図の表示
l, =ax.plot([], [], ‘c-‘,zorder=1)にipywidgetsで調整した補間データをいれるので、空のプロットを事前に作成しておく。
ipywidgetsの設定
IntSliderは整数を選択できるスライダーで、RadioButtonsはリスト内の任意の要素を選択できるラジオボタンとなる。
それぞれの補間方法については以下の通りとなる。
‘linear’ | 線形補間 |
‘nearest’ | 最近傍点 |
‘zero’ | 0 次スプライン補間 |
‘slinear’ | 1 次スプライン補間 |
‘quadratic’ | 2 次スプライン補間 |
‘cubic’ | 3 次スプライン補間 |
‘previous’ | 直前の要素の値 |
‘next’ | 直後の要素の値 |
Pythonのデコレータ構文@を使うことで簡潔に記述できる。
numはIntSlider で選択する値、kindはラジオボタンで選択するリスト内の補間方法となる。
xxで補間範囲のデータポイント数を調整し、f2でラジオボタンで選択した補間方法で補間関数を作成する。
データxxを補間関数f2に適用してプロットする。
ラジオボタンで補間方法を変化させたときの図
“nearest”
“quadratic”
“previous”
補間方法をかえることで補間曲線が変化していることがわかる。
なお、IntSliderは整数部分をクリックすることで直接入力が可能となる。
コードをダウンロード(.py) コードをダウンロード(.ipynb)参考
interp1d — SciPy v1.14.1 Manual
404 Not Found
Scipyのinterpolateで欠損しているデータを補間する - Qiita
はじめにデータを取得したセンサの仕様などによって、本当は連続値であるものを離散値で計測する場合があります。例えば、センサのクロック周波数の仕様や、ストレージの容量節約のために測定を2秒おきにすると…
コメント