如何延长与线性内插的阵列(How to extend an array with linear in

2019-10-22 23:03发布

我想是对长度为m的阵列延伸到长度的数组n (n>m)和线性插入缺失的数值。

例如,我想这个阵列延伸[1,5,1,7]对长度的阵列7 ,结果应该是[1,3,5,3,1,5,7],其中粗体数字导致从线性内插。

有没有一种简单的方法在Python做到这一点? 提前致谢。

Answer 1:

interp从numpy的功能,可以做你想做的。

例:

>>> 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. ])


Answer 2:

使用extend

a = [1, 2, 3] a.extend([4, 5]) print (a)

输出:

[1, 2, 3, 4, 5]

你将不得不使用自己的逻辑输入阵列extend



Answer 3:

交错两个列表,你可以使用:

In [240]: x = [1, 5, 1, 7]

In [241]: y = [3, 3, 5]

In [242]: from itertools import chain, izip

In [243]: list(chain.from_iterable(izip(x, y)))
Out[243]: [1, 3, 5, 3, 1, 5]

正如你看到的上面,将停止在较短的列表。 检查这个答案克服这个限制。



文章来源: How to extend an array with linear interpolation