Pythonでは、多次元(5+)パラメーター空間のベクトル値データを補間するルーチンを構築しようとしています。つまり、いくつかの入力変数を受け取り、いくつかの出力変数を返す関数があります。現時点では、ベクトルの要素ごとに1つの呼び出しがあります。データは列化されたファイルにあるので、
import numpy
[x_data,y_data,f1_data,f2_data] = numpy.loadtxt('data',unpack=True)
次に、SciPyの関数を使用して個々の補間器をインスタンス化します。
from scipy import interpolate
f1 = interpolate.LinearNDInterpolator((x_data,y_data),f1_data)
f2 = interpolate.LinearNDInterpolator((x_data,y_data),f2_data)
...
さて、補間呼び出しを行うときは、実際には1つの操作として実行できるはずですが、値などf1
ごとに補間する必要があります。f2
そして、1つの補間を行う方が5つ以上を行うよりも速いはずだと私は推測しています。
ベクトル(または配列)値の補間器を作成する方法はありますか?
で補間器を構築してみました
f = interpolate.LinearNDInterpolator((x_data,y_data),(f1_data,f2_data,...))
しかし、それはエラーを返します
ValueError:値とポイントの数が異なります
私もこの質問と回答を読みましたが、それはスカラーのベクトル値関数に関するものであり、明らかに。で処理できますinterp1d
。