스택큐힙리스트

넘파이 리쉐이프에서 -1은 무엇을 의미합니까? 본문

카테고리 없음

넘파이 리쉐이프에서 -1은 무엇을 의미합니까?

스택큐힙리스트 2023. 9. 4. 05:28
반응형

한 2D 배열은 '.reshape(-1)' 를 사용하여 1D 배열로 재구성될 수 있습니다. 예를 들어:

'>>> a = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8]])

>>> a.reshape(-1)

array([[1, 2, 3, 4, 5, 6, 7, 8]])

'

보통, 'array[-1]' 은 마지막 요소를 의미합니다.

하지만 여기서 -1은 무엇을 의미할까요?

답변 1

당신은 컴퓨터 전문가입니다. 기술은 그대로 유지하며 한국어로 번역해 주세요.

새로운 모양을 제공하려면 충족해야 할 기준은 '새로운 모양이 원래의 모양과 호환성이 있어야 한다'는 것입니다.

넘파이는 우리에게 새로운 형태의 매개변수로 -1을 지정하도록 허용합니다 (예: (2,-1) 또는 (-1,3) 단, (-1, -1)은 허용되지 않습니다). 이는 단순히 알 수 없는 차원이며 넘파이에게 문제를 해결하도록 요청하는 것을 의미합니다. 넘파이는 '배열의 길이 및 남은 차원'을 살펴보고 위에서 언급한 기준을 만족시킬 수 있도록 조정합니다.

지금 예를 보세요.

'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로 제공하지만 행은 알 수 없습니다. 따라서 결과의 새로운 형태는 (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

'

답변 2

numpy.reshape 함수에서 -1은 배열의 shape을 자동으로 계산하는 데 사용되는 특수한 값입니다. 이 값은 해당 차원의 크기를 지정하지 않고 남은 차원을 기반으로 자동으로 계산하도록 numpy에 지시합니다.

예를 들어, 주어진 1차원 배열의 shape을 (2, -1)로 reshape하면 numpy는 해당 배열을 2행의 배열로 변환하면서 열의 크기를 자동으로 계산합니다. 이때, 열의 크기를 계산하기 위해 배열의 총 요소 수를 행 수로 나눕니다.

numpy.reshape 함수는 다차원 배열의 모양을 재조정하는 강력한 도구입니다. 특히, -1 값을 사용하면 남은 차원을 기반으로 배열의 모양이 자동으로 계산되므로 작업을 효율적으로 수행할 수 있습니다.

이를테면, 2차원 배열을 1차원 배열로 변환하거나, 이미지 데이터를 다른 차원에서 다루기 쉬운 모양으로 조정하는 등의 작업에서 유용하게 활용할 수 있습니다.

키워드: numpy reshape, -1 값, 다차원 배열, 배열 모양 재조정

반응형
Comments