Гистограмма событий различной продолжительности (с учетом времени их начала и окончания) - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть массив Numpy A формы nX2, представляющий n различных событий.В первом столбце хранится время начала событий, а во втором - соответствующие длительности каждого события.

Для некоторой продолжительности времени [0, T] и N различных равноудаленных моментов времени я бы хотел подсчитатьсколько событий происходит в каждый момент времени.(т. е. целочисленный массив длины N, каждая запись имеет количество событий, которые начались до этого времени и продолжались до и после)

Какой самый эффективный способ добиться этого в Python?

* Я знаю, что я спрашиваю, на самом деле не гистограмма.Если у кого-то есть лучший термин, не стесняйтесь редактировать заголовок

1 Ответ

0 голосов
/ 02 апреля 2019

Вы можете попробовать что-то вроде этого. Идея такова: для каждого бина определите, какие события начались до конца бина, но закончились после его запуска.

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)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...