1

scipy で利用可能な補間方法を確認しましたが、私の場合は適切な解決策を得ることができませんでした。座標がランダムな 100 個のポイントがあるとします。たとえば、x と y の位置は次のとおりです。

x=np.random.rand(100)*100
y=np.random.rand(100)*100
z = f(x,y) #the point value calculated by certain function    

今、私は新しい均等にサンプリングされた座標 (xnew と y new) のポイント値 z を取得したい

xnew = range(100)
ynew = range(100)

バイリニアサンプリングを使用してこれを行うにはどうすればよいですか? ポイントごとに実行できることはわかっています。たとえば、最も近い4つのランダムポイントを見つけて補間を実行できますが、これを実行するためのより簡単な既存の関数がいくつかあるはずです

どうもありがとう!

4

1 に答える 1

3

を使用しscipy.interpolate.griddataます。それはあなたが必要とする正確なことをします

# griddata expects an ndarray for the interpolant coordinates
interpolants = numpy.array([xnew, ynew])

# defaults to linear interpolation
znew = scipy.interpolate.griddata((x, y), z, interpolants) 

http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html#scipy.interpolate.griddata

于 2012-07-05T16:40:58.297 に答える