Python插入参数的2D(或nD)网格中的函数或数组

Python插入参数的2D(或nD)网格中的函数或数组,python,scipy,interpolation,Python,Scipy,Interpolation,我有一个二维规则的参数网格,每个点都有一个一维模型的模型,我想将该一维模型数组插值到参数空间的任何点(不仅仅是网格节点) 对于1个参数的1D网格(例如A)和网格值A,我可以使用,它生成一个函数,我可以在A的任何给定值调用该函数。 例: 其中,a是参数a的1D“网格”或值数组,x是表示模型的1D离散像素数组,f(x)=model(x),而aa是我要插值的a的新值 对于2D情况,一种解决方案是在x的每个像素(每个x_i)处,使用矩形双变量样条线或其他方法(如在2D平面中切片3D体积)计算2个参数的插

我有一个二维规则的参数网格,每个点都有一个一维模型的模型,我想将该一维模型数组插值到参数空间的任何点(不仅仅是网格节点)

对于1个参数的1D网格(例如
A
)和网格值
A
,我可以使用,它生成一个函数,我可以在
A
的任何给定值调用该函数。 例:

其中,
a
是参数a的1D“网格”或值数组,
x
是表示模型的1D离散像素数组,
f(x)=model(x)
,而
aa
是我要插值的a的新值

对于2D情况,一种解决方案是在x的每个像素(每个x_i)处,使用矩形双变量样条线或其他方法(如在2D平面中切片3D体积)计算2个参数的插值,但这似乎很麻烦,并且没有考虑模型上像素之间的相关性

这里的解决方案并不完全适用于我的情况,因为我需要返回一个完整的数组,并且需要在不同时刻的不同点进行计算

从解决方案来看:两者都有 可能会起作用,但我不知道如何做与矩形双变量样条线类似的事情,即向其提供2D(或nD)参数网格、模型的像素数组和模型值,然后返回相同像素但不同参数值的插值模型
网格(a1,a2,…an;x)->模型(A1',A2',…An',x)

解决办法可能就在这里:但我不知道如何重新解释我的情况

最后,我想做的是使用函数
f(A1,A2,…An;x)
(或类似的东西),并在比较模型和数据时,在更精细的网格中使用Montecarlo探索参数空间


提前感谢!

既然没有人提供任何帮助,我将发布我自己的解决方案。 正如从解决方案开始所暗示的那样,在对线性插值进行更多研究后,基本上在这里(我在第一次搜索中错过了这一点),我以一种非常简单的方式将其适应我的案例

points = np.array((a1, a2)).T
values = np.array((models))

ip = interpolate.LinearNDInterpolator(points, values)
p = [A1_new, A2_new]
new_model = ip([point])[0]
其中a1、a2是具有每个参数的网格点的阵列,例如在2x3网格中:

a1= [1.1, 1.1, 1.1, 2.2, 2.2, 2.2]
a2= [3.3, 4.4, 5.5, 3.3, 4.4, 5.5]
并以一个图为例(我的模型):

有了它,我可以在我需要的网格的任何点调用“函数”ip,这也可以轻松地扩展到更高的维度
new_model=ip(A1',A2',…)
。 虽然我没有检查它随时间的可伸缩性(如果它与N成线性关系,或者很可能与N的幂成线性关系)

我希望这能对其他人有所帮助

a1= [1.1, 1.1, 1.1, 2.2, 2.2, 2.2]
a2= [3.3, 4.4, 5.5, 3.3, 4.4, 5.5]