我有两个不同长度的Python列表。可以假设其中一个列表比另一个大多倍。
这两个列表包含相同的物理数据,但以不同的采样率捕获。
我的目标是对较大的信号进行下采样,使其具有与较小的信号完全相同的数据点。
我想出了以下代码,基本上完成了工作,但既不太符合Python的规范,也不能以高效的方式处理非常大的列表:
我希望有更有经验的Python用户能够详细说明解决此任务的替代方法。非常感谢任何答案或评论。
这两个列表包含相同的物理数据,但以不同的采样率捕获。
我的目标是对较大的信号进行下采样,使其具有与较小的信号完全相同的数据点。
我想出了以下代码,基本上完成了工作,但既不太符合Python的规范,也不能以高效的方式处理非常大的列表:
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用户能够详细说明解决此任务的替代方法。非常感谢任何答案或评论。