У меня есть набор индексов, который определяет начало:
Int64Index([0, 3, 5, 6, 7, 8, 10, 15, 20, 22], dtype='int64')
и конец:
Int64Index([2, 5, 7, 8, 9, 10, 12, 17, 22, 24], dtype='int64')
диапазонов, которые следует использовать в качестве желаемого индекса. Другими словами, я хотел бы получить индекс, который будет включать все целые числа от 0 до 2 (включительно), затем от 3 до 5 (включительно), ..., от 10 до 12 (включительно), от 15 до 17 (включительно) и тд. Полученный индекс будет:
Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, **15**, 16, 17, **20**, 21, 22, 23, 24], dtype='int64')
(обратите внимание на разрыв перед 15
и 20
). Таким образом, пары последующих значений будут определять диапазоны, а затем эти диапазоны будут объединены.
Как я могу получить это?
Моя попытка:
np.unique(np.concatenate([np.arange(start, end + 1) for start, end in zip(indices_starts, indices_ends)]))
Но кажется, что должно быть более простое и потенциально более быстрое решение.