我有两个不同长度的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用户可以详细说明我会赞赏替代方法来解决这个任务。
任何答复或评论是高度赞赏。
请注意,通过提高分部的底部,对于较长的列表可能会有一个大的累积误差!例如。,如果一个列表包含7个元素,另一个列表包含4个元素,那么您将只取前四个元素,而不是每个元素。 –
@tobias_k的确如此。然而在我的例子中,一个列表可能有80000个元素,另一个列表可能只有300个。 – Rickson