[解決済み】IndexError: invalid index to scalar variableを修正する方法
2022-01-12 05:31:15
質問
私のコードは以下の通りです。
import pandas as pd
import numpy as np
from sklearn import ensemble
from sklearn import cross_validation
def ToWeight(y):
w = np.zeros(y.shape, dtype=float)
ind = y != 0
w[ind] = 1./(y[ind]**2)
return w
def RMSPE(y, yhat):
w = ToWeight(y)
rmspe = np.sqrt(np.mean( w * (y - yhat)**2 ))
return rmspe
forest = ensemble.RandomForestRegressor(n_estimators=10, min_samples_split=2, n_jobs=-1)
print ("Cross validations")
cv = cross_validation.KFold(len(train), n_folds=5)
results = []
for traincv, testcv in cv:
y_test = np.expm1(forest.fit(X_train[traincv], y_train[traincv]).predict(X_train[testcv]))
results.append(RMSPE(np.expm1(y_train[testcv]), [y[1] for y in y_test]))
testcv
があります。
[False False False ..., True True True]
実行すると、エラーが発生します。
IndexError: invalid index to scalar variable.
を行に追加してください。
results.append(RMSPE(np.expm1(y_train[testcv]), [y[1] for y in y_test]))
解決方法は?
スカラー値(反復不可能な値)にインデックスを作成しようとしています。
[y[1] for y in y_test]
# ^ this is the problem
を呼び出すと
[y for y in test]
ではすでに値に対して繰り返し処理を行なっているので
y
.
あなたのコードは、次のようにしようとしているのと同じです。
y_test = [1, 2, 3]
y = y_test[0] # y = 1
print(y[0]) # this line will fail
結果の配列に何を入れようとしているのかよくわかりませんが、とりあえずは
[y[1] for y in y_test]
.
y_testの各yをresultsに追加したい場合は、リスト内包をさらに拡張して以下のようにします。
[results.append(..., y) for y in y_test]
あるいは、forループを使うだけです。
for y in y_test:
results.append(..., y)
関連
-
opencvとpillowを用いた顔認証システム(デモあり)
-
python call matlab メソッドの詳細
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み] 変数を参照渡しする方法を教えてください。
-
[解決済み] 環境変数の値にアクセスする方法
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] テキストファイルを文字列変数に読み込んで、改行を除去するには?
-
[解決済み] 変数が存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] 変数の値からpandas DataFrameを構築すると、「ValueError: すべてのスカラー値を使用する場合は、インデックスを渡す必要があります。"
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
PicgoのイメージベッドツールをPythonで実装する
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】Flaskのテンプレートが見つからない【重複あり