我想是对长度为m的阵列延伸到长度的数组n (n>m)
和线性插入缺失的数值。
例如,我想这个阵列延伸[1,5,1,7]
对长度的阵列7
,结果应该是[1,3,5,3,1,5,7],其中粗体数字导致从线性内插。
有没有一种简单的方法在Python做到这一点? 提前致谢。
我想是对长度为m的阵列延伸到长度的数组n (n>m)
和线性插入缺失的数值。
例如,我想这个阵列延伸[1,5,1,7]
对长度的阵列7
,结果应该是[1,3,5,3,1,5,7],其中粗体数字导致从线性内插。
有没有一种简单的方法在Python做到这一点? 提前致谢。
该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. ])
使用extend
:
a = [1, 2, 3] a.extend([4, 5]) print (a)
输出:
[1, 2, 3, 4, 5]
你将不得不使用自己的逻辑输入阵列extend
交错两个列表,你可以使用:
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]
正如你看到的上面,将停止在较短的列表。 检查这个答案克服这个限制。