【发布时间】:2017-06-12 06:10:38
【问题描述】:
我有一个数组,类似于:
array = np.arange(0,4,1).reshape(2,2)
> [[0 1
2 3]]
我想对这个数组进行上采样以及对结果值进行插值。我知道对数组进行上采样的一个好方法是使用:
array = eratemp[0].repeat(2, axis = 0).repeat(2, axis = 1)
[[0 0 1 1]
[0 0 1 1]
[2 2 3 3]
[2 2 3 3]]
但我无法找到一种方法来插入值以消除数组的每个 2x2 部分之间的“块状”性质。
我想要这样的东西:
[[0 0.4 1 1.1]
[1 0.8 1 2.1]
[2 2.3 3 3.1]
[2.1 2.3 3.1 3.2]]
类似这样的东西(注意:这些不是确切的数字)。我知道可能无法对这个特定的 2D 网格进行插值,但是在我的回答中使用第一个网格,在上采样过程中应该可以进行插值,因为您正在增加像素数,因此可以“填补空白” '。
我对插值的类型不太在意,只要最终输出是平滑的表面!我曾尝试使用 scipy.interp2d 方法,但无济于事,如果有人能分享他们的智慧,将不胜感激!
【问题讨论】:
-
您要进行二维插值吗?我不明白这将如何工作。当你插入一个轴时,你会破坏另一个轴的插值。对吗?
-
“你明白了!” ——对不起,我不太明白。您能填写您期望的 4x4 数组的其余部分吗?
-
谢谢你们。我已经填写了网格的其余部分,以了解我想要的结果。我知道在我的答案中插入第二个 2D 网格可能有问题,但是在上采样过程发生时必须有一种方法来插入第一个网格?
标签: python arrays numpy scipy interpolation