我正在为 python 中的以下任务而苦苦挣扎:
我有 4 个带有时间戳(浮点值)的不同长度列表。
timestamps
[[0.2, 0.6, 1.5, 4.3],
[1.1, 1.4, 3.5, 3.6, 7.9],
[0.1, 0.7, 1.3, 3.7, 12.2, 36.2],
[1.3, 1.9, 3.8, 4.0, 21.7]]
我只想保留在 4 个列表中至少有 3 个巧合的时间戳。巧合的是,我的意思是“在任意宽度的窗口内有一个点(假设为 0.2)”。
因此,在上面的例子中,唯一的幸存者是
[[1.5],
[1.4, 3.6],
[1.3, 3.7],
[1.3, 3.8]
因为当时
1.4
我至少有三个列表包含(1.3, 1.5)
范围内的元素,而当时3.7
我至少有三个列表包含(3.6, 3.8)
范围内的元素。
我已经设法用一个移动的窗口来做到这一点,并计算每个窗口中心有多少列表包含该范围内的元素。显然,这被证明是非常耗时的,因为我的列表真的很长而且间隔很大。
有没有人知道任何其他方式(可能是 numpy 驱动的或任何其他工具)来快速(ish)完成这个?