uniq = np.unique(arr)
args, indices = np.where(np.tile(arr, len(uniq)).reshape(len(uniq), len(arr
    )) == np.vstack(uniq))
np.split(indices, np.where(np.diff(args))[0] + 1)
Эффективно находить индексы всех значений в массиве