Python で一部のデータを補間して、通常のメッシュに再グリッド化して、部分的に統合できるようにしています。データは、高次元のパラメーター空間 (現在 3、少なくとも 5 に拡張される予定) の関数を表し、オブザーバブルの多値関数 (現在 2、3 に拡張され、その後数十に拡張される可能性があります) を返します。
scipy.interpolate.LinearNDInterpolator
他の明らかなオプションがないため、補間を実行しています(griddata
とにかくそれを呼び出すだけだと理解しているため)。小規模なデータ セット (15,000 行の列データ) では問題なく動作します。より大きなセット (60,000 以上) では、コマンドは無期限に実行されるように見えます。top
は、iPython が 100% の CPU を使用しており、端末が を含めて完全に応答していないことを示しC-c
ます。これまでのところ、何時間も無駄に放置してきましたが、最終的には数百万のエントリを渡したいと思っています.
問題はこのチケットに関連していると思われますが、昨日アップグレードした SciPy 0.10.0 でパッチが適用されたと思われます。
私の質問は基本的に、大規模なデータセットで多次元補間を実行するにはどうすればよいですか? 私が試したことに基づいて、解決策が得られる可能性のある場所がいくつかありますが、それらを見つけることができませんでした. (私の検索は、scipy のサブドメインのいくつかがダウンしているように見えるという事実によって助けられません...)
- の何が問題になってい
LinearNDInterpolator
ますか? または、少なくとも、問題が何であるかを調べて、ハングを回避するにはどうすればよいですか? - それが機能するように補間を再定式化する方法はあり
LinearNDInterpolator
ますか? おそらく、データを慎重にチャンクアップして、部分的に再グリッド化することでしょうか? - 問題により適した他の高次元補間器はありますか? (SciPy の代替手段のほとんどは <2D パラメータ空間に制限されていることに注意してください。)
- 通常のユーザー定義グリッドに多次元データを取得する他の方法はありますか? 補間してやろうとしているのはそれだけです...