だから私は、それぞれがN_pixのN配列の大きなセットを持っています。私はPythonですべての配列を補間したい(つまり、N個のデータ点を持つN_pix補間を実行する)。ジェネレータ式を受け入れるPython補間メソッド?
問題は、各アレイが非常に大きいことです(それぞれ100sMBのアレイで100sMBになる可能性があるため)、すべてをメモリに読み込まないようにしたいと思います。
私の最初は、しかし、大きなファイルを一つずつ読んで、補間ルーチンにその発電機を渡すためにジェネレータ式を使用していた:
def read_data_from_disc(paths):
# Cycle through paths, and yield each large array
for path in paths:
yield np.loadtxt(path)
def interpolation(xs, paths):
# Iterable returns large arrays one by one.
iterable = read_data_from_disc(paths)
# Use some interpolation routine that can handle an
# iterable and interpolate iterable over 1d array, xs.
spline = interpolator(xs, iterable, axis=0)
return spline
しかし、私はそのようなinterpolator
を見つけることに成功していません。私は具体的な実装の詳細をよく知らない。 scipy.interpolate.interp1d
またはscipy.interpolate.CubicSpline
(これは通常私が使用しているものです)、おそらく私が求めていることは実際には不可能です。これが当てはまる場合、私はこれらのアレイのすべてを同時にメモリに読み込む必要がないような代替アプローチを提案することができますか?
データポイントが1つの軸に沿って整列していない場合、アップサンプリングまたはサンプルレート変換用のデジタル信号処理/フィルタオプションがあります。 – f5r5e5d