Я пытаюсь пробежаться по пространству параметров функции с 6 параметрами, чтобы изучить ее числовое поведение, прежде чем пытаться сделать с ней что-нибудь сложное, поэтому я ищу эффективный способ сделать это.
Моя функция принимает на вход значения с плавающей запятой, заданный 6-тусклым массивом numpy. Первоначально я пытался сделать следующее:
Сначала я создал функцию, которая принимает 2 массива и генерирует массив со всеми комбинациями значений из двух массивов.
from numpy import *
def comb(a,b):
c = []
for i in a:
for j in b:
c.append(r_[i,j])
return c
Затем я reduce()
применил это к m копиям одного и того же массива:
def combs(a,m):
return reduce(comb,[a]*m)
А затем я оцениваю свою функцию так:
values = combs(np.arange(0,1,0.1),6)
for val in values:
print F(val)
Это работает, но слишком медленно. Я знаю, что пространство параметров огромно, но это не должно быть так медленно. В этом примере я отобрал только 10 6 (миллион) точек, и на создание массива ушло более 15 секунд values
.
Знаете ли вы более эффективный способ сделать это с помощью numpy?
При необходимости я могу изменить способ получения F
аргументов функцией .