[英]optimize.fmin error: IndexError: too many indices for array
我正在嘗試使用 scipy 中的 optimize.fmin 優化 python 中的函數。 在給定初始條件和參數的情況下,該函數應該優化參數向量。 但是,當我嘗試運行優化時,我不斷收到以下錯誤,而運行該函數本身是有效的:
IndexError:參數化中數組第 1 行的索引過多
簡而言之,我的代碼是這樣的:
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
我解決了這個問題。 似乎我無法在 Scipy 中按如下方式選擇數組的元素(盡管它在 Numpy 中有效):
Omega[0,0]
Omega[0]
訣竅是使用:
Omega.item(0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.