python - 在特定时间窗口内找到巧合

问题描述 投票:0回答:0

我正在为 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)完成这个?

python arrays numpy numpy-ndarray
© www.soinside.com 2019 - 2024. All rights reserved.