不同持续时间的事件的直方图(根据其开始和结束时间)

时间:2019-04-02 13:59:42

标签: python performance numpy histogram

我有一个形状为A的Numpy数组nX2,代表了n个不同的事件。第一列保留事件的开始时间,第二列保留每个事件的持续时间。

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

在Python中最有效的方法是什么?

*我知道我要的不是一个直方图。如果有人有更好的学期,请随时编辑标题

1 个答案:

答案 0 :(得分:0)

您可以尝试类似的方法。这个想法是:对于每个垃圾箱,确定哪些事件已在垃圾箱结束之前开始但在垃圾箱开始之后结束。

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)]