首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python网格数据网格

Python网格数据网格
EN

Stack Overflow用户
提问于 2011-06-15 21:39:50
回答 2查看 8.2K关注 0票数 2

在Python中,我想使用scipy.interpolate.griddata(x,y,z,xi,yi)对一些数据进行插值。

由于我希望在等间距XI-YI网格上的X-Y网格映射上使用不等间距的原始数据,因此我必须使用网格作为:

代码语言:javascript
复制
X, Y = numpy.meshgrid([1,2,3], [2,5,6,8])
XI,YI = numpy.meshgrid([1,2,3],[4,5,6,7])
print scipy.interpolate.griddata(X,Y,X**2+Y**2,XI,YI)

不幸的是,与matlab的网格数据函数相比,scipys的网格数据似乎不接受矩阵作为x,y,z的输入。谁能给我一个解决这个问题的提示?

EN

回答 2

Stack Overflow用户

发布于 2011-06-15 22:15:36

在您的例子中,正确的调用序列是

代码语言:javascript
复制
print scipy.interpolate.griddata((X.ravel(),Y.ravel()), (X**2+Y**2).ravel(), (XI, YI))

也就是说,您需要将输入数据点转换为1-d。(可以修复此问题,以便在下一版本的Scipy中不使用.ravel()。)

票数 3
EN

Stack Overflow用户

发布于 2011-06-15 22:10:53

我认为你需要重塑你的网格,griddata需要一个列式坐标的点列表:

代码语言:javascript
复制
points = transpose(reshape((X,Y), (2,12)))
pointsI = transpose(reshape((XI,YI), (2,12)))
Z = reshape(X**2+Y**2, 12)

print scipy.interpolate.griddata(points, Z, pointsI)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6358596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档