Python二维插值问题

Python二维插值问题,python,numpy,scipy,interpolation,Python,Numpy,Scipy,Interpolation,我目前有三个1D numpy阵列,如下所示: #X Y Z 0 1 2.9 0 3 2.1 0 5 1.753 . . . . . . 0 99 3.82 0.1 1 4.1 0.1 3 5.3 0.1 5 2.65 . . . . . . 0.1 99 5.21 每个z对应于

我目前有三个1D numpy阵列,如下所示:

#X     Y     Z
 0     1     2.9
 0     3     2.1
 0     5     1.753
 .     .     .
 .     .     .
 0     99    3.82
 0.1   1     4.1
 0.1   3     5.3
 0.1   5     2.65
 .     .     .
 .     .     .
 0.1   99    5.21    
每个z对应于同一索引处的(x,y)对。我试图在我的网格上执行线性插值,这样我就可以看到Z的值,比如说(57.3,33.1)

我的问题是,我的X值以0.1的增量一直增加到几乎100,而我的Y值以2的增量增加。当我尝试使用interp2d或bisplrep进行插值时,总是会出现分段错误。(我假设是因为数据点的数量?)

非常感谢您提供的任何帮助。我的X坐标增量很小,我永远不会尝试检查Z值,比如(50.53,y)。但我需要能够在增量处检查Y值。例如(50.1,33.6)

我建立了一个(x,y)坐标及其对应z值的字典(如果有用的话)

编辑:

因为我已经为每个(x,y)对设置了Z值,所以我不明白为什么下面的代码不起作用(大约20秒后它会出现seg故障)


因为我已经有了这样的X和Y结构,所以我不需要使用np.meshgrid来构建网格。对吗

interp2d
应该正是您想要的。你能发布你尝试过的代码吗?当我试图重现错误时,我的计算机只是在处理它很长一段时间,直到我放弃等待并杀死它。但对较小的一组进行同样的操作效果很好。要进行线性插值,b样条曲线控制点与插值点相等,因此您可以用很少的代码手动执行此操作,只需使用当前数据即可。您需要
矩形双变量样条线
。如果数据实际上具有规则结构,则使用分散数据插值算法(如interp2d)效率低下。(不过,分段故障当然是一个bug。)
f = interpolate.interp2d(X, Y, Z, kind='linear')