我想要的是将长度为m的数组扩展为长度为n (n>m)
的数组,并线性插入缺失值。
例如,我想将此数组[1,5,1,7]
扩展为长度为7
的数组,结果应为[1, 3 ,5, 3 ,1, 5 ,7],其中粗体数字来自线性插值。
在Python中有一种简单的方法吗? 提前谢谢。
答案 0 :(得分:5)
来自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. ])
答案 1 :(得分:1)
使用extend
:
a = [1, 2, 3]
a.extend([4, 5])
print (a)
输出:
[1, 2, 3, 4, 5]
您必须将自己的逻辑用于extend
答案 2 :(得分:1)
要交错两个列表,您可以使用:
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]
如上所述,它会停在较短的列表中。检查this answer是否克服此限制。