Python 网格数据 网格网格

发布于 2024-11-16 01:52:38 字数 387 浏览 5 评论 0原文

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

由于我希望在等间距 XI-YI 网格上的 XY 网格图上得到不等间距的原始数据,因此我必须使用网格网格:

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)

不幸的是,相比之下 scipys 的 griddata 似乎不接受矩阵作为 x、y、z 的输入到 matlab 的 griddata 函数。有人提示我如何解决这个问题吗?

in Python I want to interpolate some data using scipy.interpolate.griddata(x,y,z,xi,yi).

Since I want my unequal spaced original data on the X-Y grid map on an equal spaced XI-YI grid I have to use a meshgrid as:

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)

Unfortunately it seems as scipys' griddata does not accept matrices as input for x,y,z in contrast to matlab's griddata-function. Does anyone has a hint for me how to solve the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我不吻晚风 2024-11-23 01:52:38

您的情况下正确的调用顺序是

print scipy.interpolate.griddata((X.ravel(),Y.ravel()), (X**2+Y**2).ravel(), (XI, YI))

,即您需要将输入数据点转换为 1-d。 (在下一版本的 Scipy 中,这可以修复为在没有 .ravel() 的情况下工作。)

The correct call sequence in your case is

print scipy.interpolate.griddata((X.ravel(),Y.ravel()), (X**2+Y**2).ravel(), (XI, YI))

I.e., you need to cast the input data points to 1-d. (This could be fixed to work without the .ravel()s in the next version of Scipy.)

梦幻的味道 2024-11-23 01:52:38

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

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)

I think you need to reshape your grids, griddata expects a list of points with coordinates in column form:

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文