1

我检查了 scipy 中可用的插值方法,但无法为我的情况找到合适的解决方案。假设我有 100 个点的坐标是随机的,例如,它们的 x 和 y 位置是:

x=np.random.rand(100)*100
y=np.random.rand(100)*100
z = f(x,y) #the point value calculated by certain function    

现在我想获得一个新的均匀采样坐标的点值 z(xnew 和 y new)

xnew = range(100)
ynew = range(100)

我应该如何使用双线性采样来做到这一点?我知道可以逐点进行,例如,找到最近的 4 个随机点,然后进行插值,但是必须有一些更简单的现有函数来做到这一点

多谢!

4

1 回答 1

3

使用scipy.interpolate.griddata. 它做你需要的确切事情

# griddata expects an ndarray for the interpolant coordinates
interpolants = numpy.array([xnew, ynew])

# defaults to linear interpolation
znew = scipy.interpolate.griddata((x, y), z, interpolants) 

http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html#scipy.interpolate.griddata

于 2012-07-05T16:40:58.297 回答