【发布时间】:2016-10-06 08:12:06
【问题描述】:
我有一个二维数组(或矩阵,如果你愿意的话),其中一些缺失值表示为
NaN。缺失值通常沿一个轴呈一条带状,例如:
1 2 3 NaN 5
2 3 4 Nan 6
3 4 Nan Nan 7
4 5 Nan Nan 8
5 6 7 8 9
我想用一些合理的数字替换NaN。
我查看了 delaunay 三角测量,但发现的文档很少。
我尝试使用astropy's convolve,因为它支持使用二维数组,而且非常简单。
这样做的问题是卷积不是插值,它会将所有值移向平均值(可以通过使用窄内核来缓解)。
这个问题应该是this post 的自然二维扩展。有没有办法在二维数组中插入NaN/缺失值?
【问题讨论】:
-
有很多方法可以插入这个。一个困难是您的数据不再是矩形的,许多简单的 2d 插值算法都需要这样做,但它仍然是可能的。您对插值有什么特殊要求吗?
-
例如,这个docs.scipy.org/doc/scipy-0.14.0/reference/generated/… 可能满足您的需求。只需传入不是 NaN 的数据点,然后在构建插值后在 NaN 处重新采样。
-
另外,这个问题:stackoverflow.com/questions/5146025/… 似乎本质上是一样的。
-
@JeremyWest 非常感谢您提供的链接,我认为
griddata与我所寻找的很接近。
标签: python numpy interpolation