如何使用线性插值扩展一个数组

3
我想要将长度为m的数组扩展至长度为n(n>m)的数组,并进行线性插值以填补缺失部分。
例如,我希望将数组[1,5,1,7]扩展至长度为7的数组,结果应为[1,3,5,3,1,5,7],其中粗体数字是通过线性插值得到的。
在Python中是否有简单的方法来完成这个过程呢? 先行谢过。

2
如果您将数组 [1, 5, 1, 7] 扩展到长度为6,您希望得到什么? - Aleksandr Kovalev
2
你可以编写一个简单的逻辑来实现你想要的,而不是寻找“简单的方法”。 - Pranav Totla
我只是想知道是否有内置函数可以方便地使用...谢谢。 - Maytree23
1
@Pranav Maytree23可能只是在寻找一种Pythonic的方法来实现它。 - fixxxer
谢谢大家。问题已解决,请参考 @cfh 的答案。 - Maytree23
显示剩余2条评论
1个回答

7

从numpy中的interp函数可以完成您想要的操作。

示例:

>>> xp = [1, 2, 3]
>>> fp = [3, 2, 0]
>>> np.interp(2.5, xp, fp)
1.0
>>> np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp)
array([ 3. ,  3. ,  2.5 ,  0.56,  0. ])

你能详细解释一下答案吗?你是如何得出xp和fp的,并且如何解释最终数组的期望形状? - Martim Passos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接