具有不同持续时间的事件的直方图(给定其开始和结束时间)

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

我有一个形状A的Numpy阵列nX2,代表n不同的事件。第一列保存事件的开始时间,第二列保存每个事件的相应持续时间。

对于一段时间[0, T]N不同的等距时间点,我想计算每个时间点正在进行的事件数量。 (即一个长度为N的整数数组,每个条目都包含在此之前开始并持续到之后的事件数)

在Python中实现这一目标的最有效方法是什么?

*我知道我要求的不是直方图。如果有人有更好的术语,请随时编辑标题

python performance numpy histogram
1个回答
0
投票

你可以尝试这样的事情。这个想法是:对于每个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)]
© www.soinside.com 2019 - 2024. All rights reserved.