- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要对一些 Nan
进行插值二维 numpy 数组中的值,例如参见下图:
在我当前的方法中,我使用 scipy.interpolate.griddata
为插值过程。然而我注意到当在两个轴上镜像阵列,即 d2 = d[::-1, ::-1]
插值给出不同的结果。这是一个完整的示例:
import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate as interp
def replace_outliers(f):
mask = np.isnan(f)
lx, ly = f.shape
x, y = np.mgrid[0:lx, 0:ly]
z = interp.griddata(np.array([x[~mask].ravel(),y[~mask].ravel()]).T,
f[~mask].ravel(),
(x,y), method='linear', fill_value=0)
return z
def main():
d = np.load('test.npy')
d2 = d[::-1, ::-1]
dn = replace_outliers(d)
dn2 = replace_outliers(d2)
print np.sum(dn - dn2[::-1, ::-1])
plt.imshow(dn-dn2[::-1, ::-1], interpolation='nearest')
plt.colorbar()
plt.show()
if __name__=='__main__':
main()
这给出了两个插值之间的差异:
或按 np.sum
评估大约-62.7
那么数组的简单镜像怎么可能呢?在插值过程中给出不同的结果?我使用的坐标可能有问题吗?
最佳答案
原因可能是线性插值是基于三角形的。然而,这样的方形网格是 Delaunay 三角剖分的退化情况,并且三角剖分不是唯一的。我可以想象结果取决于数据点的顺序。
对于丢失的数据点,我猜测这两种情况对应于空白空间的不同三角剖分:
A A
* * * *---*---* *---*---*
| / \ | | / | \ |
* * => D*-------*B or D* | *B
| \ / | | \ | / |
* * * *---*---* *---*---*
C C
如果您现在计算中心的值,您可以从一个三角剖分中得到 (B+D)/2,从另一个三角剖分中得到 (A+C)/2。
关于python - 使用 scipy.interpolate.griddata 进行二维插值的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40449024/
为什么下面对 griddata 的调用会失败? import scipy.interpolate import numpy as np grid_vals = np.meshgrid(*([np.li
我有一个方法可以创建 2 个按钮。这些按钮不同于确定、关闭按钮。单击时它们将执行不同的操作。我希望 2 个按钮并排放置在我的基本组合的顶部。这是使用 GridLayout。我希望能够并排放置按钮。 这
我正在将一些代码从 Matlab 转换为 Python,发现我从 scipy.interpolate.griddata 得到的结果与从 Matlab scatteredInterpolant 得到的结
我不确定我做错了什么。我正在尝试使用 scipy griddata 在不规则网格中插入数据。 from scipy.interpolate import griddata 我有两个列表,“x”和“y”
我正在使用这个 code使用 griddata 可视化我的数据。代码如下所示: import math import numpy as np from scipy.interpolate import
我正在插入一个 2d numpy 数组来填充用 NaN 标记的缺失值。以下代码有效但仅使用一个内核。有没有更好的函数可以用来利用我拥有的所有 24 个内核? x = np.arange(0, arra
当我遇到一个奇怪的、看起来像浮点精度错误时,我正在使用 mlab.griddata 插入一些数据。这是调用顺序: nvals = matplotlib.mlab.griddata(lon_old.ra
我正在使用 griddata 对网格上的 numpy 二维数组进行重新采样。 z.shape = (1000, 1000) x, y = np.arange(-5, 5, 0.01), np.aran
我有一个卫星数据的二维数组,以及两个相应的二维数组,给出每个像素的纬度和经度。 数据数组是一个掩码数组。 当我使用 pcolormesh 绘制它时,它看起来像这样: m.pcolormesh(lon,
我有以下数据框: A B C 0 2 0.7904 0.278784507354 1 2 0.7904 0.278784507354 2 2 0.7904
我正在尝试使用 matplotlib 绘制两个变量的函数。该函数存储在三个一维数组X、Y和F中,分别对应x坐标、y坐标和函数的值。是否可以将这些数据绘制为等高线图?在我看到使用 griddata()
我在 eclipse 应用程序中有以下 java 代码: import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.
按照我之前的问题 [1] ,我想对 matplotlib 的 griddata 函数应用多处理。是否可以将网格数据拆分为 4 个部分,每个部分用于我的 4 个核心?我需要这个来提高性能。 例如,试试下
我在同一个不规则网格上定义了几个值 (x, y, z)我想插入一个新的网格(x1, y1, z1) .即,我有 f(x, y, z), g(x, y, z), h(x, y, z)我想计算f(x1,
我正在尝试将数据从非结构化网格M1插入到另一个非结构化网格M2。对于这一点,scipy.interpolate.griddata 似乎不错。 但是,我需要从 M1 到 M2 进行多次插值,仅更改数据而
我在使用 scipy.interpolate 的 griddata 函数时遇到问题。我在沙箱中使用 griddata 开发了一个快速插值器,然后一旦我有了我喜欢的插值器,就将函数复制到我开发的更大模型
我有一个 Composite,其 GridLayout 为一列。在其中,我放置了两个 Canvas C1 和 C2。目前,我修复了C1的GridData的heightHint和C2 的 GridDat
当数据集很多时,使用 Scipy 的 griddata 将数据 (d) 网格化为不规则网格(x 和 y)非常耗时。但是,经度和纬度(x 和 y)始终相同,只有数据 (d) 发生变化。在这种情况下,一旦
我在循环中使用 Scipy 的网格数据时遇到问题。基本上发生的事情是在循环运行时内存无限增长。 要重现问题,只需将示例放入 http://docs.scipy.org/doc/scipy/refere
我想对给定的 3D 点云进行插值: 我查看了 scipy.interpolate.griddata 结果正是我所需要的,但据我所知,我需要输入“griddata”,这意味着 x = [[0,0,0 ]
我是一名优秀的程序员,十分优秀!