Предположим, у меня есть массив следующим образом:
A = np.array([a,b,c,d,e,f])
Каждый элемент в массиве имеет значение, равное скаляру (например, возможно a
равно 2, b
равнодо 7 и т. д.).Но a
и b
требуют много времени для оценки, поэтому Python может потребовать пару минут, чтобы определить значение a
, еще пару минут, чтобы определить значение b
, и аналогично дляостальные элементы.
Если есть способ определить функцию (назовем ее sumfirstn
), которая оценивает первые n членов A
и вычисляет их сумму?Например, sumfirstn(A,2)
вернет a+b
, sumfirstn(A,3)
вернет a+b+c
и т. Д.
Но (и это важно) sumfirstn(A,2)
должен не оценить c
, d
, e
и f
.Он должен только оценивать соответствующие термины, которые добавляются (чтобы сократить время вычислений).Конечно, A[0:n].sum()
делает свое дело, но для этого нужно, чтобы Python вычислял весь массив A
, что я не хочу делать!
Есть идеи?A
не обязательно должен быть массивом, может быть списком, фреймом данных или быть в какой-либо другой форме ... что бы ни работало.