2017-09-13 3 views
0

2 차원 numpy 배열의 데이터가 있습니다. 행을 60 %, 20 %, 20 % 크기의 세 가지 하위 집합으로 나누고 싶습니다. numpy.split 함수를 사용하여 시도했지만 크기가 같은 하위 배열 만 만듭니다. 또한 sklearn 라이브러리에서 KFold 메소드를 시도했지만 서브 세트 크기를 지정할 수 없습니다. 그리고 sklearn의 셔플 분할은 두 개의 하위 집합으로 분할 만 허용합니다. shufflesplit을 사용하여 세 개의 하위 집합을 만드는 데 두 번 데이터를 분할 할 수 있지만 더 좋은 방법이 있는지 알고 싶습니다.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:,:]