我在尝试运行优化库pyOpt
时遇到了TypeErrors。我尝试运行的代码是给定here的基本示例(我只测试SLSQP解算器)。
我在执行解算器时遇到以下错误
la = numpy.array([max(m,1)], numpy.int)
gg = numpy.zeros([la], numpy.float)
TypeError: only integer scalar arrays can be converted to a scalar index
我怀疑错误是由于numpy的变化,因为给出了here的答案。如果是这样的话,我有什么选择让图书馆工作?我可以考虑降级numpy,但我不希望对我系统中的其他库进行任何不可预见的更改。
在Ubuntu 14.04上使用Python 2.7和numpy 1.12.1。
答案 0 :(得分:0)
用lz替换lz [0] - 问题在于你所注意到的numpy版本。
/usr/local/lib/python2.7/dist-packages/pyOpt/pySLSQP/pySLSQP.py
我通过更改行来运行
374 gg = numpy.zeros([la[0]], numpy.float)
377 dg = numpy.zeros([la[0],n+1], numpy.float)
401 w = numpy.zeros([lw[0]], numpy.float)
404 jw = numpy.zeros([ljw[0]], numpy.intc)
我最终在执行期间遇到了错误,这些错误不是python错误,而是在编译代码运行期间遇到的错误,所以我只是转而使用pyGMO2而且我很满意。