import numpy as np def get_ranges(labels: np.ndarray) -> list[list[int, int, int]]: """Преобразование сырых лейблов временного ряда в отрезки для визуализации Args: labels (np.ndarray): лейблы Returns: list[list[int, int, int]]: список отрезков для визуализации, каждый отрезок определен как тройка "начало", "конец", "тип действия" """ actions = [] __temp_action = [0] __prev_action = labels[0] idx = 1 while True: if idx + 1 > len(labels): __temp_action.extend([idx, __prev_action]) actions.append(__temp_action) break if labels[idx] != __prev_action: __temp_action.extend([idx - 1, __prev_action]) actions.append(__temp_action) __temp_action = [idx] __prev_action = labels[idx] idx += 1 return actions