【发布时间】:2019-05-07 14:15:24
【问题描述】:
我有两个整数 A 和 B 的 numpy 数组。数组 A 和 B 中的值对应于事件 A 和 B 发生的时间点。我想转换 A 以包含自最近事件 b 发生以来的时间。
我知道我需要将 A 的每个元素减去最接近 B 的元素,但我不确定该怎么做。任何帮助将不胜感激。
>>> import numpy as np
>>> A = np.array([11, 12, 13, 17, 20, 22, 33, 34])
>>> B = np.array([5, 10, 15, 20, 25, 30])
期望的结果:
cond_a = relative_timestamp(to_transform=A, reference=B)
cond_a
>>> array([1, 2, 3, 2, 0, 2, 3, 4])
【问题讨论】:
-
嗨,如果我不清楚,对不起。目标是计算每个事件 A 和 B 中小于该事件的事件之间的最小距离。
-
嘿拉斐尔。实际上,A 和 B 包含数十万个条目。我还向 B 引用了许多不同的数组。我不太了解计算时间,但我认为 for 循环可能太慢了。
-
你可以使用np.searchsorted:
idx=np.searchsorted(B,A, side='right');result=A-B[idx-1] -
@Brenlla 有什么理由不将此作为答案发布?
标签: python numpy data-science