通常の入力グリッドからデータを補間しようとすると、scipy.interpolate.interp2d
のドキュメントでこの出くわし:あなたの 入力データがグリッド上ScipyのRectBivariateSplineが誤った値を返しますか?
ある場合
もはるかに高速2D補間をRectBivariateSplineを参照してくださいだから私は
interp2d
の代わりにscipy.interpolate.RectBivariateSpline
を使ってみました。両方の機能のドキュメントは非常によく似ているようですので、私はこれで同様の結果が得られると期待しています:import numpy as np from scipy.interpolate import RectBivariateSpline, interp2d from .constants import data x_coords = y_coords = np.arange(data.shape[0]) # Square array interp_fun = interp2d(x_coords, y_coords, data) bivar_fun = RectBivariateSpline(x_coords, y_coords, data) data[250, 60] # 76.1451873779 interp_fun(60, 250) # 76.14518738 bivar_fun(60, 250, grid=False) # 345.24444
私はこれを間違って呼び出していますか?私はなぜ
RectBivariateSpline
に基づく補間がこれほど離れているのか分かりません。おそらく
RectBivariateSpline
がデカルト格子で動作し、入力データのy軸を反転させたが、まだ運がないと思われました。