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