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

2024-10-08 21:25:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我现在得到的是brute optimizer的返回,从文档中可以看到:

返回:
x0:ndarray
包含目标函数具有最小值的点的坐标的一维数组。(见注1,返回点)。
fval:浮动
x0点的函数值。
网格:元组
表示评估网格。它的长度与x0相同。(完整输出为真时返回。)
焦耳:ndarray
计算网格中每个点的函数值,即Jout=func(*grid)。(完整输出为真时返回。)

source

我想将“网格”值与“Jout”参数合并,形式如下:

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

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中的数组(“Jout”)相结合。我的np数组foo不够好用。在

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


Tags: csv函数网格参数scipy数组array分数
1条回答
网友
1楼 · 发布于 2024-10-08 21:25:28

所以你想把三个(2,2,2)矩阵和(2,2,2)矩阵Jout堆叠起来?np.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]: 

相关问题 更多 >

    热门问题