次のような計算をしています。
Xというのは1次元配列で、
X = np.array([1,2,4,3,1,3,2,4,6,4,2,…])
のような感じです。
python
1 2dim = 4 3input_vec = np.zeros((len(X),dim+1)) 4 5Sum1 = np.zeros((dim+1,dim+1)) 6Sum2 = np.c_[np.zeros(dim+1)] #縦ベクトルにしておく 7 8 for j in range(0,len(X)): 9 input_vec[j] = np.array([[X[j]**0,X[j]**1,X[j]**2,X[j]**3,X[j]**4]]) 10 11 Sum1 = Sum1 + np.dot(input_vec[[j]].transpose(),input_vec[[j]]) 12 Sum2 = Sum2 + Y[j]*input_vec[[j]].transpose()
dim = 4 の場合はこのままでも良いのですが、dimを書き換えた時にちゃんと動くように、
python
1 2input_vec = np.zeros((len(X),dim+1)) 3 4Sum1 = np.zeros((dim+1,dim+1)) 5Sum2 = np.c_[np.zeros(dim+1)] #縦ベクトルにしておく 6 7 for j in range(0,len(X)): 8 for i in range(0,dim+1): 9 input_vec[j][i] = X[j]**i 10 11 Sum1 = Sum1 + np.dot(input_vec[[j]].transpose(),input_vec[[j]]) 12 Sum2 = Sum2 + Y[j]*input_vec[[j]].transpose()
と書き換えましたが、エラーがでます。なぜでしょう。
エラー内容:
IndexError: index 1 is out of bounds for axis 0 with size 1
エラーがでる行は
input_vec[j][i] = X[j]**i
の行です。
回答1件
あなたの回答
tips
プレビュー