試圖插值從一個普通的輸入柵格數據,並遇到了這個文檔中的scipy.interpolate.interp2d
:Scipy的RectBivariateSpline返回錯誤的值?
參見RectBivariateSpline快得多2D插值如果您 輸入數據網格上的
所以我嘗試使用scipy.interpolate.RectBivariateSpline
而不是interp2d
。這兩種功能的文件似乎非常相似,所以我期望這會產生類似的結果:
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軸,但仍然沒有運氣。