Я ищу функцию numpy
(или функцию из любого другого пакета), которая эффективно оценила бы
![enter image description here](https://i.stack.imgur.com/r0Fvt.png)
, где f является вектор-функцией входного вектора x . Продукт считается простым компонентным умножением.
Проблема здесь в том, что нужно умножить как длину каждого x вектора, так и общее число векторов результата ( f из x ) ( N ) очень большой, порядка миллионов. Следовательно, невозможно сгенерировать все результаты одновременно (они не поместятся в память), а затем умножить их впоследствии, используя np.multiply.reduce
или тому подобное.
A игрушечный пример типа кода, который я хотел бы заменить:
import numpy as np
x = np.ones(1000000)
prod = f(x)
for i in range(2, 1000000):
prod *= f(i * np.ones(1000000))
с f
вектор-функцией с размерностью ее вывода, равной размерности ее входа.
Чтобы быть уверенным: я ищу не эквивалентный код, а одну высоко оптимизированную функцию. Есть ли такая вещь?
Для тех, кто знаком с Wolfram Mathematica : Это будет эквивалент Product . В Mathematica я мог бы просто написать Product[f[i ConstantArray[1,1000000]],{i,1000000}]
.