새로운 모양을 제공하기 위해 충족해야 할 기준은 '새로운 모양은 원래 모양과 호환되어야합니다'입니다.
numpy를 사용하면 새로운 모양 매개 변수 중 하나를 -1 (예 : (2, -1) 또는 (-1,3)이지만 (-1, -1)은 아님)로 지정할 수 있습니다. 그것은 단순히 그것이 알려지지 않은 차원이라는 것을 의미하며 우리는 numpy가 그것을 알아 내기를 원합니다. 그리고 numpy는 '배열의 길이와 남은 치수'를 보고 위에서 언급 한 기준을 충족시키는 지 확인하여 이것을 파악합니다.
이제 예제를 참조하십시오.
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
이제 (-1)로 재구성하려고합니다. 결과 새 모양은 (12)이고 원래 모양과 호환됩니다 (3,4)
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
이제 (-1, 1)로 재구성하려고합니다. 우리는 열을 1로 제공했지만 행을 unknown으로 제공했습니다. 따라서 우리는 (12, 1)과 같은 새로운 모양을 얻습니다. 원래 모양과 다시 호환됩니다 (3,4)
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
위의 내용은 단일 기능 numpy
에 사용 reshape(-1,1)
하기위한 조언 / 오류 메시지 와 일치 합니다. 즉 단일 컬럼
array.reshape(-1, 1)
데이터에 단일 기능 이있는 경우 데이터를 재구성하십시오
(-1, 2)와 같은 새로운 모양. 행을 알 수 없음, 열 2입니다. 결과는 (6, 2)
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
이제 열을 알 수없는 것으로 유지하려고합니다. (1, -1)과 같은 새로운 모양. 즉, 행은 1이며 열을 알 수 없습니다. 우리는 (1, 12)
z.reshape(1,-1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])
위의 내용은 단일 샘플 numpy
에 사용 reshape(1,-1)
하기위한 조언 / 오류 메시지 와 일치합니다 . 즉 단일 행
단일 샘플array.reshape(1, -1)
이 포함 된 데이터를 사용하여 데이터 재구성
새로운 모양 (2, -1). 행 2, 열을 알 수 없습니다. 우리는 (2,6)
z.reshape(2, -1)
array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
(3, -1)과 같은 새로운 모양. 행 3, 열을 알 수 없습니다. 우리는 (3,4)
z.reshape(3, -1)
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
마지막으로, 두 차원을 알 수없는 차원, 즉 (-1, -1)과 같은 새로운 모양으로 제공하려고하면. 오류가 발생합니다
z.reshape(-1, -1)
ValueError: can only specify one unknown dimension
reshape
동일한 수의 요소를 유지하기 위해 원래 배열의 차원의 곱을 주어진 차원의 곱으로 나눈 값 입니다.