重采样和调整numpy数组大小

3 投票
1 回答
4854 浏览
提问于 2025-04-18 05:06

我想按照这里的建议对一个numpy数组进行重采样,具体内容可以参考这个链接 重采样一个表示图像的numpy数组。不过,这个重采样是按比例进行的,也就是说:

x = np.arange(9).reshape(3,3)
print scipy.ndimage.zoom(x, 2, order=1)

这会生成一个形状为(6,6)的数组,但我该如何将一个数组重采样到(4,6)、(6,8)或(6,10)这样的形状,以达到最佳近似呢?

1 个回答

4

与其给zoom参数传一个单独的数字,不如传一个数字序列:

scipy.ndimage.zoom(x, zoom=(1.5, 2.), order=1)
#array([[0, 0, 1, 1, 2, 2],
#       [2, 2, 3, 3, 4, 4],
#       [4, 4, 5, 5, 6, 6],
#       [6, 6, 7, 7, 8, 8]])

如果你使用序列(2., 2.75)(2., 3.5),你会得到形状分别为(6, 8)(6, 10)的输出数组。

撰写回答