gpt4 book ai didi

python - 结合 scipy.optimize.brute 网格和结果

转载 作者:太空宇宙 更新时间:2023-11-03 16:37:59 24 4
gpt4 key购买 nike

我正在使用 scipy 的强力优化器来计算给定不同输入参数的函数的分数。为了分析结果,我想将结果参数与分数集转储到 csv 中。

我目前拥有的是来自强力优化器的返回值,其文档的形式如下:

返回:
x0 : ndarray
包含目标函数具有最小值的点的坐标的一维数组。 (返回的点请参见注释 1。)
fval : float
x0 点处的函数值。
网格:元组
评估网格的表示。它的长度与 x0 相同。 (当 full_output 为 True 时返回。)
Jout:ndarray
评估网格各点的函数值,即 Jout = func(*grid)。 (当 full_output 为 True 时返回。)

source

我想将“grid”值与“Jout”参数结合起来,形式如下:

[参数1,参数2,参数3,分数1]
[参数1,参数2,参数3,分数2]
...

暴力破解的示例输出是:

     (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 不符合要求。

任何提示或指示都将非常感激,并缓解我过去几个小时沮丧的大脑。

最佳答案

所以你想在grid中堆叠三个(2,2,2)矩阵和(2,2,2)矩阵Joutnp.stack可能是您所需要的,即:

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]:

关于python - 结合 scipy.optimize.brute 网格和结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37057473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com