首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >optimize.fmin错误: IndexError:数组索引太多

optimize.fmin错误: IndexError:数组索引太多
EN

Stack Overflow用户
提问于 2020-02-04 14:31:18
回答 1查看 123关注 0票数 0

我正在尝试优化python中的一个函数,使用optimize.fmin。该函数应在给定初始条件和参数的情况下优化参数向量。但是,在运行函数本身时,当我试图运行优化时,我仍然会收到以下错误:

IndexError:数组的太多索引,第1行,在参数化中

简而言之,我的代码就像:

代码语言:javascript
复制
import numpy as np # import numpy library
import pandas as pd # import pandas library
from scipy import optimize # import optimize from scipy library
from KF_GATSM import KF_GATSM # import script with Kalman filter

yields=pd.read_excel('data.xlsx',index_col=None,header=None) # Import observed yields
Omega0=pd.read_excel('parameters.xlsx') # Import initial parameters

# Function to optimize
def GATSM(Omega,yields,N):

     # recover parameters
     Omega=np.matrix(Omega)
     muQ,muP=parametrization(N,Omega) # run parametrization

Y=muQ+muP # or any other function

return Y

# Parametrization of the function
def parametrization(nstate,N,Omega):

     muQ=np.matrix([[Omega[0,0],0,0]]).T # intercept risk-neutral world
     muP=np.matrix([[Omega[1,0],Omega[2,0],Omega[3,0]]]).T # intercept physical world

     return muQ,muP

# Run optimization
def MLE(data,Omega0):

    # extract number of observations and yields maturities
    N=np.shape(yields)[1]

    # local optimization
     omega_opt=optimize.fmin(GATSM,np.array(Omega0)[:,0],args=(yields,N)) 

    return Y
EN

回答 1

Stack Overflow用户

发布于 2020-02-05 16:54:14

我解决了这个问题。我似乎无法按Scipy中的方式选择数组的元素(尽管它在Numpy中有效):

代码语言:javascript
复制
Omega[0,0]
Omega[0]

诀窍是使用:

代码语言:javascript
复制
Omega.item(0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60059570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档