Я хочу создать массив в numpy, который содержит значения математического ряда, в данном примере это квадрат предыдущего значения, дающий одно начальное значение, то есть a_0 = 2, a_1 = 4, a_3 = 16,...
Пытаясь использовать векторизацию в numpy, я подумал, что это может сработать:
import numpy as np
a = np.array([2,0,0,0,0])
a[1:] = a[0:-1]**2
, но результат будет
array([2, 4, 0, 0, 0])
Теперь я понял, что numpy делаетвнутренне создайте временный массив для вывода и в конце копируете этот массив, поэтому он терпит неудачу для значений, которые равны нулю в исходном массиве.Есть ли способ векторизации этой функции, используя Numpy, Numberxpr или другие инструменты?Какие другие способы существуют для эффективного вычисления значений ряда, когда доступны быстрые функции numpy без использования цикла for?