如何组织列表列表以与scipy.optimize fmin init数组兼容

问题描述 投票:0回答:1

关于科学性,我非常业余。我正在尝试在多维变量系统上使用scipy的fmin函数。为了简单起见,我使用的是列表列表。我的数据是12维的,当我输入np.shape(DATA)时它返回(3,2,2),我什至不确定scipy是否可以处理这么多的维,如果不是没有问题的话我可以缩小它们,关键是optimize.fmin()函数没有'不接受基于列表的数组作为x0初始参数,因此我需要帮助将x0数组重写为numpy兼容的数组,或者将整个DATA数组重写为12维矩阵或类似的东西。

这是说明问题的更简单的示例:

from scipy import optimize
import numpy as np
def f(x): return(x[0][0]*1.5-x[0][1]*2.0+x[1][0]*2.5-x[1][1]*3.0)
result = optimize.fmin(f,[[0.1,0.1],[0.1,0.1]])
print(result)

它会说invalid index to scalar variable,这可能是由于不了解列表结构的[[],[]]列表,所以它可能只理解numpy数组格式。

所以如何重写此代码以使其正常工作,以及我的(3,2,2)形列表也是如此!

关于科学性,我非常业余。我正在尝试在多维变量系统上使用scipy的fmin函数。为了简单起见,我使用的是列表列表。我的数据是12 ...

arrays python-3.x numpy scipy scipy-optimize
1个回答
0
投票

scipy.optimize.fmin需要对函数参数进行初步猜测,以使其成为一维数组,其中包含许多要优化函数的元素。在您的情况下,如果只需要输出与输入参数具有相同形状,则可以使用flattenreshape。基于您的插图代码的示例:

© www.soinside.com 2019 - 2024. All rights reserved.