【发布时间】:2019-07-28 04:28:04
【问题描述】:
我有一个 x,y 点列表(大约 1500 对),我想将其插值到 500 个点,同时保留尽可能多的细节(不仅仅是删除 2/3 的点)。
我还想包含结果数据集必须包含的 x 点列表。
有人知道我该如何处理吗?
【问题讨论】:
-
我认为你需要的是下采样,而不是插值。使用 numpy 索引:
arr2 = arr[1::3] -
@Masoud,此操作将导致 2/3 的分数下降
-
@Derek Eden,你能判断 x-es 是否均匀分布吗?如果是这样,那么您可以简单地取每 3 个连续点的平均值,例如
arr.reshape(-1,3).mean(axis=-1) -
@tstanisl 不幸的是,它们不是……有些靠得很近,有些距离更远,但我很欣赏这个建议。我在我的 OP 中添加了一个数字,以更好地描述我想要做的事情do..可能与本地最小值/最大值有关?
-
这取决于您认为“细节”以及您实际想要删除的内容。我建议首先通过生成您认为最好的 500 x 坐标的函数运行您的数据,然后使用 scipy interpolate 函数之一,例如 interp1d
标签: python numpy scipy filtering interpolation