Я намагаюсь перебрати простір параметрів функції 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
приймає свої аргументи, якщо це необхідно.