2017-09-13 27 views
0

2次元numpy配列のデータがあります。その行を60%、20%、20%サイズの3つのサブセットに分割したいと考えています。 numpy.split関数を使ってみましたが、同じサイズのサブ配列しか作成しません。私もsklearnライブラリでKFoldメソッドを試しましたが、サブセットのサイズを指定することはできません。また、Sklearnのシャッフル分割は、2つのサブセットに分割することしかできません。私は3つのサブセットを作成するためにshufflesplitを使ってデータを2回分割することができますが、もっと良い方法があるかどうかを知りたいと思います。NumPy配列を不均等な部分にシャッフルして分割する

+0

に配列

  • スプリットをシャッフルランダムに必要な分割ですか? –

  • +0

    @Bahaはい、私は分割する前に行をシャッフルしたい、 –

    答えて

    1

    np.random.shuffle、次にスライスを割り当てることができます。

    x = ... 
    np.random.shuffle(x) 
    l = x.shape[0] 
    A, B, C = x[: int(l * .6)], x[int(l * .6) : int(l * .8)], x[int(l * .8):] 
    
    1
    1. 3部

    import numpy 
    # assuming your dataset is like x: x for dataset 
    x = numpy.random.rand(100, 10) 
    # what you can do 
    numpy.random.shuffle(x) 
    split1, split2 = 60, 80 
    part1, part2, part3 = x[:split1,:], x[split1:split2,:], x[split2:,:] 
    
    関連する問題