В первом случае я бы попробовал прямое решение:
[np.sum(A[a:b]) for (a,b) in ab]
, где ab
- последовательность пар.
A[a:b]
создает представление в массиве;копирование данных не выполняется.
Если это окажется слишком медленным, расскажите, пожалуйста, подробнее о размере A
, сколько пар индексов вы ожидаете получить, будь то (a,b)
диапазоны имеют тенденцию перекрываться и т. д.