我有一个形状为A
的Numpy数组nX2
,代表了n
个不同的事件。第一列保留事件的开始时间,第二列保留每个事件的持续时间。
对于[0, T]
和N
等距时间点不同的持续时间,我想计算每个时间点正在进行多少事件。 (即长度为N
的整数数组,每个条目都有在该时间之前开始并持续到之后的事件数)
在Python中最有效的方法是什么?
*我知道我要的不是一个直方图。如果有人有更好的学期,请随时编辑标题
答案 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)]