Ash*_*win 1 python scipy multidimensional-array linear-interpolation
我没有使用LinearNDInterpolator获得所需的2D线性插值功能.下面的代码试图在4个结点(0,0),(1,0),(0,1),(1,1)之间进行插值.interp2d给出了预期的(线性插值)结果,但是LinearNDInterpolator正在做其他事情,我无法弄清楚.也许我没有正确使用API.不幸的是,我找不到有关用法的详细文档.有人可以请帮助或指向正确的论坛(mathoverflow?)写信给?
>>> f = interp2d([0,1,0,1], [0,0,1,1], [0,1,2,4])
>>> f(0.5,0.5)
array([ 1.75])
>>> g = LinearNDInterpolator([[0,0],[1,0],[0,1],[1,1]], [0,1,2,4])
>>> g(0.5,0.5)
array(2.0)
Run Code Online (Sandbox Code Playgroud)
来自http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.LinearNDInterpolator.html:
通过用Qhull [R15]对输入数据进行三角测量,并在每个执行线性重心插值的三角形上构造插值.
在您的情况下,所选的三角形似乎共享(0,0), (1,1)边缘.由于(0.5, 0.5)在(0,0)和之间(1,1),插值值位于这些顶点的值之间,所以它是(0+4)/2 = 2.0.