首页 > 解决方案 > 领导者和滞后者时间戳之间的 numpy 计算滞后

问题描述

我有 2 个时间戳数组

leader = [1, 5, 15, 22]

lagger = [3, 4, 5, 6, 7, 8, 9, 10, 17]

我想将滞后者的每个时间戳与领导者中紧接其前的时间戳相匹配,并计算滞后,获得数组

lags = [2, 3, 4, 1, 2, 3, 4, 5, 2]

有没有快速处理 numpy/pandas 的方法?

标签: pythonnumpy

解决方案


我认为searchsorted,鉴于lagger[0] > leader[0]

leader = np.array([1, 5, 15, 22])
lagger = np.array([3, 4, 5, 6, 7, 8, 9, 10, 17])

lagger - leader[np.searchsorted(leader, lagger)-1] 

输出:

array([2, 3, 4, 1, 2, 3, 4, 5, 2])

推荐阅读