일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이터분석
- Yes
- 파이썬
- 머신러닝
- 프로그래밍
- 데이터과학
- 소프트웨어
- 딥러닝
- 컴퓨터공학
- 빅데이터
- I'm Sorry
- 데이터구조
- 프로그래밍언어
- 코딩
- 네트워크
- 자바스크립트
- 보안
- 데이터베이스
- 클라우드컴퓨팅
- 버전관리
- 2
- 인공지능
- 컴퓨터비전
- 소프트웨어공학
- 사이버보안
- 알고리즘
- 네트워크보안
- 웹개발
- 컴퓨터과학
- 자료구조
- Today
- Total
스택큐힙리스트
넘파이 리쉐이프에서 -1은 무엇을 의미합니까? 본문
한 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 값, 다차원 배열, 배열 모양 재조정