【发布时间】:2014-10-06 08:07:10
【问题描述】:
我有一个大小为 48x80 的数组,现在我想将数组扩展到一个大小为 117x192 的新数组。
我读过scipy.interpolate,但没有提到扩展。
如何扩展数组并将值放入新数组?
例如: 给定数组 A [[1,2,3],[4,5,6],[7,8,9]]
[1 2 3]
[4 5 6]
[7 8 9]
现在我想将数组 A 扩展到数组 B 大小为 5x7
1 x 2 x 3
x x x x x
x x x x x
4 x 5 x 6
x x x x x
x x x x x
7 x 8 x 9
其中,将这些“x”替换为插值。
示例 2: 在更一般的数组中
[4 2 6 4]
[4 34 6 2]
[2 11 3 4]
[2 4 22 4]
[2 1 35 255]
[1 3 4 54]
[22 1 4 5]
如果我想要一个大小为 20x30 的新数组该怎么办
更新: 我发现在我的情况下,@nicoguaro 的回答不起作用:
他的解决方案:
pts = np.array([[i,j] for i in np.linspace(0,1,n) for j in np.linspace(0,1,m)] )
grid_x, grid_y = np.mgrid[0:1:m*2j, 0:1:n*2j]
我的解决方案:
pts = np.array([[i,j] for i in np.linspace(0,2*m-1,m) for j in np.linspace(0,2*n-1,n)] )
grid_x, grid_y = np.mgrid[0:m*2, 0:n*2]
导致结果不同。事实上,他的解决方案在大多数情况下都有效,但我猜是 TIFF 文件
【问题讨论】:
-
这一篇是关于将一行或多行追加到二维数组
-
我认为您需要更具体地说明您的要求。
-
我已经编辑了问题
-
看看
scipy.ndimage.zoom。对于您的示例,您需要result = ndimage.zoom(data, (7.0/3, 5.0/3))。 (请注意,scipy.ndimage函数保留类型,因此如果您想要浮点输出,则需要将输入显式转换为浮点数。)
标签: python interpolation