【问题标题】:python scipy minimize ValueErrorpython scipy最小化ValueError
【发布时间】:2016-11-13 22:34:16
【问题描述】:

我正在尝试使用 scipy 最小化并遇到一个我似乎无法弄清楚的 ValueError 错误。

我有一个如下定义的目标函数 f,它需要两个输入。如果我用随机数定义两个输入,并调用该函数,它似乎评估得很好。

import numpy as np
import pandas as pd
from scipy.optimize import minimize

sigma = pd.DataFrame(np.random.randn(7, 7), columns=list('ABCDEFG'))
x0 = np.random.randn(7)

def f(x, sigma):
    result = 0.0
    sigmaX = sigma.dot(x)

    for i in range(len(x)):
        for j in range(len(x)):
            result = result + (x[i] * sigmaX[i] - x[j]*sigmaX[j])**2

    return result


In [387]: f(x0, sigma)
Out[387]: 371.67951578983951

但是当我尝试使用最小化时,我得到一个 ValueError:

In [389]: minimize(f, x0, args=(sigma))
ValueError: Wrong number of items passed 1, placement implies 7

我不知道最小化是否对 x0 或 sigma 的形状/大小感到不安。任何帮助将不胜感激!

埃里克

【问题讨论】:

  • 试试args=(sigma,)。那就是确保你给args 一个元组。没有,() 什么都不做。
  • 如果可以,我会吻你。谢谢!!

标签: python scipy minimize


【解决方案1】:

复制自我的评论,所以可以标记为已关闭

试试 args=(sigma,)。那就是确保你给 args 一个元组。没有 , () 什么都不做。

【讨论】:

    猜你喜欢
    • 2013-12-03
    • 2017-04-11
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2021-10-25
    • 2016-05-27
    相关资源
    最近更新 更多