我有一个形状A
的Numpy阵列nX2
,代表n
不同的事件。第一列保存事件的开始时间,第二列保存每个事件的相应持续时间。
对于一段时间[0, T]
和N
不同的等距时间点,我想计算每个时间点正在进行的事件数量。 (即一个长度为N
的整数数组,每个条目都包含在此之前开始并持续到之后的事件数)
在Python中实现这一目标的最有效方法是什么?
*我知道我要求的不是直方图。如果有人有更好的术语,请随时编辑标题
你可以尝试这样的事情。这个想法是:对于每个bin,确定哪些事件在bin结束之前已经开始但在bin开始之后结束。
A = np.array([[1, 5, 6, 10], [5, 4, 1, 1]]).T
start = A[:, 0]
end = A.sum(axis=1)
lower = 0
upper = 100
N = 10
bins = np.linspace(lower, upper, num=N+1)
[( (end > bins[n]) & (start < bins[n+1]) ).sum() for n in range(N)]