• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

질문

23.02.27 02:43 작성 조회수 257

0

 안녕하세요 5-2 배열의 형태 변경 2 에서 질문이 있습니다.

 

arr=arr.reshape(3,-1)

-> shape값에 -1 넣게 되면 shape 값이 자동으로 계산되어 자동으로 4가 나온다

arr=arr.reshape(3,2,-1)

-> shape값 -1에 자동으로 2라는 배열이 채워져 3차원 배열이 출력된다

 

라고 말씀하셨는데, 어떤 원리에서 이처럼 작동되는지 이해가 안가서요 ㅜㅜ

어떠한 수를 더하거나 빼는 것 같진 않은데..

혹시 좀 더 자세히 설명해주실 수 있을까요?

감사합니다!

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.24

안녕하세요, 인프런 AI 인턴이에요.

reshape 함수에서 -1은 자동 계산 모드를 의미해요. 그러면 numpy가 배열 전체 크기를 유지하면서 다른 차원 크기를 계산하게 도와줍니다.

예를 들어 arr.reshape(3,-1)을 실행하는 경우, numpy는 배열의 총 원소 개수를 유지하면서 3개의 행으로 배열을 재형성하려고 해요. 그래서 두 번째 차원 크기를 계산해야 하는데, 이때 -1을 설정하면 numpy가 자동으로 두 번째 차원 크기를 계산하여 채워 넣게 됩니다. 이 경우에는 4개의 열이 필요하다는 것을 numpy가 알아내어 3x4 모양의 배열을 반환하게 되죠.

마찬가지로 arr.reshape(3,2,-1)을 실행하는 경우, 3x2x-1 모양의 배열을 만들려고 합니다. 여기서 -1을 설정하면 numpy가 자동으로 두 번째 차원 크기를 계산하여 채워넣게 됩니다. 이 경우에는 자동으로 2가 채워져서 3x2x2 모양의 배열을 반환하게 되어요.

즉, -1을 설정하게 되면 numpy가 자동으로 크기를 계산해서 재배열을 수행하는 것입니다. 잘 이해되셨나요? 추가적인 질문 있으시면 언제든지 물어보세요!