Python 结合scipy.optimize.brute网格和结果
我使用scipy的brute优化器计算给定不同输入参数的函数的分数。为了分析结果,我想将结果参数vs分数集转储到csv中 我目前得到的是brute optimizer的返回,文档中的返回形式如下: 返回:Python 结合scipy.optimize.brute网格和结果,python,arrays,numpy,scipy,Python,Arrays,Numpy,Scipy,我使用scipy的brute优化器计算给定不同输入参数的函数的分数。为了分析结果,我想将结果参数vs分数集转储到csv中 我目前得到的是brute optimizer的返回,文档中的返回形式如下: 返回: x0:ndarray 包含目标函数最小值点坐标的一维数组。(关于返回的点,请参见注释1。) fval:浮动 点x0处的函数值。 网格:元组 评估网格的表示。它的长度与x0相同。(满_输出为真时返回。) 日:日 计算网格各点的函数值,即Jout=func(*网格)。(当full_输出为真时返回。
x0:ndarray
包含目标函数最小值点坐标的一维数组。(关于返回的点,请参见注释1。)
fval:浮动
点x0处的函数值。
网格:元组
评估网格的表示。它的长度与x0相同。(满_输出为真时返回。)
日:日
计算网格各点的函数值,即Jout=func(*网格)。(当full_输出为真时返回。) 我希望将“网格”值与“焦耳”参数组合为: [Param1,Param2,Param3,Score1]
[Param1,Param2,Param3,Score2]
brute的输出示例如下:
(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中的数组(“焦耳”)结合起来。我的np数组不符合标准
任何提示或指点都将非常感谢,并能缓解我过去几个小时沮丧的大脑。那么你想把三(2,2,2)个矩阵堆叠在
网格中和(2,2,2)矩阵Jout
?可能是您需要的,即:
In [26]: a = np.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]]]])
In [27]: b = np.array([[[-0.96868449, -0.96868449],
...: [-0.96868449, -0.96868449]],
...:
...: [[-0.96868449, -0.96868449],
...: [-0.96868449, -0.96868449]]])
In [28]: np.stack([*a, b], -1)
Out[28]:
array([[[[ 0. , 0. , 0. , -0.96868449],
[ 0. , 0. , 1. , -0.96868449]],
[[ 0. , 1. , 0. , -0.96868449],
[ 0. , 1. , 1. , -0.96868449]]],
[[[ 1. , 0. , 0. , -0.96868449],
[ 1. , 0. , 1. , -0.96868449]],
[[ 1. , 1. , 0. , -0.96868449],
[ 1. , 1. , 1. , -0.96868449]]]])
In [29]:
太棒了,我想这让我在大部分方面都达到了目的,但我如何才能将最终输出转换成更平坦的形式,即:[[0,0,0,-0.96],[0,0,1,-0.96]]看看numpy.reforme
.edit:找到了-谢谢@tjollans!