我有两个不同长度的
Python列表.可以假设其中一个列表比另一个列表大几倍.
两个列表包含相同的物理数据,但使用不同的采样率捕获.
我的目标是对较大的信号进行下采样,使其具有与较小信号一样多的数据点.
我提出了以下代码,它基本上完成了这项工作,但既不是Pythonic,也不能以高效的方式处理非常大的列表:
import math
a = [1,2,3,4,5,6,7,8,9,10]
b = [1,4.5,6.9]
if len(a) > len(b):
div = int(math.floor(len(a)/len(b)))
a = a[::div]
diff = len(a)-len(b)
a = a[:-diff]
else:
div = int(math.floor(len(b)/len(a)))
b = b[::div]
diff = len(b)-len(a)
b = b[:-diff]
print a
print b
如果更有经验的Python用户可以详细说明解决此任务的替代方法,我将不胜感激.
任何答案或评论都非常感谢.