2017-10-10 18 views
-3

私はクロスバリデーションコードを書こうとしており、セットを繰り返し、トレーニングとテストデータを分割する必要があります。私は、次の方法でそれを分割しようとしていますが、コードは期待リストからサブリストを取得

import numpy as np 
X = np.array([[1,2], [3,4], [5,6]]) 
n_folds = 3 

for n in range(n_folds): 
    test_fold = X[n] 
    train_folds = X[x for x in range(n_folds) if x != n] 
    print train_folds, test_fold 

出力

[3,4,5,6], [1,2] 
[1,2,5,6], [3,4] 
[1,2,3,4], [5,6] 

私はこれを実装することができます方法はありますがコンパイルされませんか?

+4

1.6k +担当者は、取得したエラーを共有する必要があります。 – Julien

答えて

3

は、余分な括弧を追加します。

X[[x for x in range(n_folds) if x != n]] 

インナーブラケットリスト(理解)を作成し、外側のものは、高度なインデックス作成のためにそのリストを使用するためにnumpyのを伝えます。

関連する問題