Я использую оптимизатор перебора scipy, чтобы вычислить оценки функции с учетом разных входных параметров. Чтобы проанализировать результаты, я хочу сбросить полученный параметр vs score sets в csv.Сочетание scipy.optimize.brute сетки и результатов
То, что я в настоящее время является возвращение из грубой оптимизатора, который из Docs имеет вид:
Возвращает:
x0: ndarray
A 1-D массив, содержащий координаты точки, в что целевая функция имела минимальное значение. (См. Примечание 1, для которого возвращается точка.)
fval: float
Значение функции в точке x0.
сетка: кортеж
Представление оценочной сетки. Он имеет ту же длину, что и x0. (Возвращается, когда full_output имеет значение True.)
Jout: ndarray
Значения функций в каждой точке оценочной сетки, то есть Jout = func (* grid). (Возвращается, когда full_output является True.)
Я хочу, чтобы объединить значение "сетки" с параметром "Jout" в виде:
[Param1, Param2, Param3, Score1]
[Param1, Param2, Param3, Score2]
...
пример вывода из грубой является:
(array([ 0., 0., 0.]), -0.96868449202047968, array([[[[0, 0],
[0, 0]],
[[1, 1],
[1, 1]]],
[[[0, 0],
[1, 1]],
[[0, 0],
[1, 1]]],
[[[0, 1],
[0, 1]],
[[0, 1],
[0, 1]]]]), array([[[-0.96868449, -0.96868449],
[-0.96868449, -0.96868449]],
[[-0.96868449, -0.96868449],
[-0.96868449, -0.96868449]]]))
Я не могу, поскольку жизнь меня определяет, как объединить массив в индексе 2 выше («сетка») с массивом в индексе 3 («Jout»). Мой np-массив foo не до него.
Любые советы или указатели были бы очень оценены и облегчили мой расстроенный мозг последних нескольких часов.
Awesome, это заставляет меня большую часть пути там, я думаю, но как я могу преобразовать, что конечный результат в виде плоской, то есть: [[0,0, 0, -0,96], [0,0,1, -0,96]] – ponderinghydrogen
Посмотрите на 'numpy.reshape'. – tjollans
Редактировать: нашел [здесь] (http://stackoverflow.com/questions/13990465/3d-numpy-array-to-2d) - спасибо @tjollans! – ponderinghydrogen