python - 如何在网格中为点列表进行二维插值
问题描述
似乎这里的一些相关问题没有给我想要的答案。
所以我有一个二维查找表,它是一个二维网格,其值位于网格坐标处。例如,可以通过以下代码生成这样的表:
xx, yy = np.meshgrid(np.arange(100), np.arange(100))
zz = some_function(xx, yy)
现在我有一个网格上分散点的坐标列表,例如,我可以通过以下方式生成这样的坐标:
xs = np.random.rand(10) * 100
ys = np.random.rand(10) * 100
scattered_points = [(x, y) for x, y in zip(xs, ys)]
如何插入这 10 个点的 z 值?我只发现我可以通过搜索 (x, y) 的相邻网格点并在那里执行插值来做到这一点。有几点没问题,但我只是想知道是否有更好的/pythonic 方法可以使用numpy
/来做到这一点scipy
。
解决方案
这应该适用于您所描述的内容。(更新)
from scipy.interpolate import interp2d
import numpy as np
xx, yy = np.meshgrid(np.arange(100), np.arange(100))
zz = some_function(xx,yy)
f = interp2d(xx, yy, zz, kind='cubic')
xs = np.random.rand(10) * 100
ys = np.random.rand(10) * 100
zs = np.zeros_like(xs)
for i in range(xs.shape[0]):
zs[i]=f(xs[i],ys[i])
推荐阅读
- javascript - vanilla js是否可以在文本节点旁边动态添加按钮元素?
- python-2.7 - SoftLayer API:订购一个 128 子网
- javascript - 如何使用只读文本框角度显示垂直图像?
- python - 每个月如何做子图?
- java - 如何避免这个错误运行maven时没有这样的文件或目录
- java - AES/CBC/PKCS5Padding 加密结果在 PHP 和 Java 中不同
- javascript - 从不同的按钮只打开一个模式
- javascript - 如果未选中我的六个复选框之一,则禁用锚链接“ ”
- java - 有openjdk-11-jre吗?
- eclipse - 在eclipse中切换标签时没有循环?