这是我的数据:
a b c
732018 2.501 95.094
732018 3.001 91.658
732018 3.501 89.164
732018 3.751 88.471
732018 4.001 88.244
732018 4.251 88.53
732018 4.501 89.8
732018 4.751 90.66
732018 5.001 92.429
732018 5.251 94.58
732018 5.501 97.043
732018 6.001 102.64
732018 6.501 108.798
732079 2.543 94.153
732079 3.043 90.666
732079 3.543 88.118
732079 3.793 87.399
732079 4.043 87.152
732079 4.293 87.425
732079 4.543 88.643
732079 4.793 89.551
732079 5.043 91.326
732079 5.293 93.489
732079 5.543 95.964
732079 6.043 101.587
732079 6.543 107.766
732170 2.597 95.394
732170 3.097 91.987
732170 3.597 89.515
732170 3.847 88.83
732170 4.097 88.61
732170 4.347 88.902
732170 4.597 90.131
732170 4.847 91.035
732170 5.097 92.803
732170 5.347 94.953
732170 5.597 97.414
732170 6.097 103.008
732170 6.597 109.164
732353 4.685 91.422
我正在尝试c
获取a=732107
and b=4.92
。我期待~90.79 基于使用基本线性插值的以下计算(浅绿色是原始数据,深绿色中间步骤和粗黑色是结果):
但是当我将整个表面喂给 Rbf 时,我得到了奇怪的结果:
import pandas
from scipy.interpolate import Rbf
interp_fun = Rbf(df["a"], df["b"], df["c"], function='cubic',smooth=0)
vol = interp_fun(732107,4.92)
print(vol)
array(207.6631648)
看起来它正在推断它不应该的地方。
我错过了什么?