У меня есть массив 2D numpy
, который представляет фрагментированные сегменты времени как время начала / окончания. Я разработал способ объединения сегментов, когда они проксимальны (меньше, чем минимальная длина зазора):
def join_proximal_segments(original_segments, min_gap):
begins = np.array([original_segments.T[0, 0]])
ends = np.array([])
for i in np.arange(len(original_segments)-1):
if((original_segments.T[0, i+1] - original_segments.T[1, i]) > min_gap):
begins = np.append(begins, original_segments.T[1, i])
ends = np.append(ends, original_segments.T[0, i+1])
ends = np.append(ends, original_segments.T[1, -1])
joined_segments = np.array([begins, ends]).T
return joined_segments
Это выглядит довольно не элегантно. Есть ли более прямой способ решения этой проблемы с использованием numpy
?
Редактировать: пример массива
detections = np.array([[2, 60],[62, 78],[97, 105],[255, 340],[343, 347]])