私はオーディオデータを扱っているので、私のデータセットは通常約40000から120000ポイント(1から3秒)です。現在、いくつかのタスクに線形補間を使用していますが、いくつかの結果を改善するために3次補間を使用したいと思います。
補間関数を生成するためにinterp1d
withを使用しています。kind='linear'
これはうまく機能し、非常に直感的です。
ただし、に切り替えるとkind='cubic'
、コンピュータがおかしくなります---メモリがスラッシングし始め、Emacsウィンドウが暗くなり、マウスポインタが非常にゆっくりと動き始め、ハードドライブが非常にアクティブになります。これは、大量のメモリを使用しているためだと思います。私は(非常にゆっくりと)新しいターミナルウィンドウを開き、実行htop
して、Pythonプロセスを強制終了することを余儀なくされています。(私はLinuxを使用していると言っておくべきでした。)
三次内挿についての私の理解は、一度にデータセットの5つのポイントを調べるだけでよいということですが、これは間違っている可能性があります。
いずれにせよ、メモリ使用量のこの明らかなレンガの壁にぶつかることなく、線形補間から3次補間に最も簡単に切り替えるにはどうすればよいですか?すべての例でinterp1d
使用されているデータポイントはごくわずかであり、高次の注文ではうまく機能しないことがドキュメントのどこにも記載されていないため、次に何を試すべきかわかりません。
編集:私はちょうど試しUnivariateSpline
ました、そしてそれはほとんど私が探しているものです。問題は、補間がすべてのデータポイントに影響を与えないことです。すべてのデータポイントを通過する滑らかな曲線を生成するものを探しています。
Edit2:多分InterpolatedUnivariateSpline
私が探していたもののようです。