繁体   English   中英

在 Python 中插值/下采样二维数组

[英]interpolate / downsample 2D array in Python

我有 2 个不同尺寸的独立 arrays:

len(range_data) = 4320
len(az1) = 385
len(az2) = 347

data1.shape = (385,4320)
data2.shape = (347,4320)

我希望data2的尺寸等于data1的尺寸,这样data2.shape应该是(385,4320)。 我尝试过 scipy 插值,例如:

f = interpolate.interp2d(az1,range_data,data1,kind='cubic')
znew = f(az2,range_data)

print(znew.shape)
(347,4320)

znew.shape 应该是(385,4320),任何想法为什么会发生这种情况和/或可能需要做些什么来解决这个问题?

我不认为interp2d实际上会为您生成更多点,它在网格上定义了插值 function。 这意味着您创建的是一种在由您的第一组数据点定义的网格内插入点的方法。 znew将返回一个插值网格,其值与传递给它的xy相同。

请参阅源代码

Returns
        -------
        z : 2-D array with shape (len(y), len(x))
            The interpolated values.

如果您想添加额外的数据点,我建议您在第二个数据集上推导出回归 function(或任何您想要的 ML 技术,如果您愿意,可以使用 NN)并使用该 function 来生成您需要的额外 38 个数据点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM