shift_idx = np.hstack((0, lens[:-1].cumsum()))
shift_vals = np.hstack((array1[0], np.diff(array1) - lens[:-1] + 1))
Создайте массив numpy с несколькими пользовательскими диапазонами индексов без явного цикла