소개
np.reshape(array, newshape, order)는 NumPy 배열의 형태(shape)를 변경하는 함수로, 배열의 요소 수는 유지한 채로 새로운 차원과 크기로 배열을 재구성합니다. 이 함수는 데이터의 구조를 변형하거나, 데이터를 모델에 적합한 형태로 바꾸기 위해 자주 사용됩니다. 예를 들어, 1차원 배열을 2차원 또는 3차원 배열로 변환할 수 있으며, 입력 데이터가 기존 배열의 요소 수와 호환되기만 하면 다양한 차원으로 배열을 변형할 수 있습니다.
기본 사용법
import numpy as np
# 1차원 배열을 2x3 배열로 재구성
array_1d = np.array([1, 2, 3, 4, 5, 6])
reshaped_array = np.reshape(array_1d, (2, 3))
# 3차원 배열로 재구성
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
reshaped_3d = np.reshape(array_2d, (3, 2, 1))
print("1D 배열을 2x3으로 재구성:\n", reshaped_array)
print("2D 배열을 3D 배열로 재구성:\n", reshaped_3d)
상세 설명
- array: 재구성할 원본 배열입니다. 배열의 요소 수가 새로운 형태와 일치해야 합니다.
- 예시: np.reshape(array_1d, (2, 3))는 6개의 요소를 가진 1차원 배열을 2x3 배열로 재구성합니다.
- newshape: 배열의 새로운 형태를 지정합니다. 튜플로 각 차원의 크기를 설정하며, 하나의 차원을 -1로 설정하면 남은 요소에 맞게 자동으로 계산됩니다.
- 예시: np.reshape(array_1d, (2, -1))는 자동으로 2차원 배열을 계산하여 (2, 3) 형태로 만듭니다.
- order (선택사항): 배열의 요소를 메모리에서 읽는 순서를 지정합니다. 'C'는 행 우선(C 스타일), 'F'는 열 우선(Fortran 스타일)입니다.
- 예시: np.reshape(array_1d, (2, 3), order='F')는 Fortran 스타일로 배열을 재구성합니다.
- 활용
- 데이터 전처리 및 변형: np.reshape()는 데이터를 학습 모델에 맞는 형태로 변형하거나, 데이터 분석 및 시각화를 위해 차원을 변경할 때 유용합니다.
- 다차원 배열 처리: 이미지 데이터 또는 시계열 데이터 등 다양한 형식의 데이터를 다차원으로 변형해 연산할 수 있습니다.
라이센스
NumPy는 BSD-3-Clause 라이센스를 따릅니다. 자유롭게 사용, 수정, 배포할 수 있으며 상업적 목적으로도 사용할 수 있습니다. 라이센스와 저작권 정보는 NumPy의 공식 GitHub 리포지토리에서 확인할 수 있습니다.
관련 내용
[NumPy] 배열 수평으로 쌓기: np.hstack() 사용 및 설명
[NumPy] 배열 수직으로 쌓기: np.vstack() 사용 및 설명
[NumPy] 배열 차원 추가하며 결합하기: np.stack() 사용 및 설명
[NumPy] 배열 분할하기: np.split() 함수 사용 및 설명
[NumPy] 배열 이어 붙이기: np.concatenate() 사용 및 설명
[NumPy] 배열 전치 및 축 변환: np.transpose() 사용 및 설명
[NumPy] 배열 형태 변경: np.reshape() 사용 및 설명
[NumPy] 구간을 일정 간격으로 나누기: np.linspace() 사용 및 설명
[NumPy] 숫자 배열 생성하기: np.arange() 사용 및 설명
[NumPy] 빈 배열 생성하기: np.empty() 사용 및 설명
[NumPy] 1로 초기화된 배열 생성: np.ones() 사용 및 설명
'함수 설명 > 기본 및 범용' 카테고리의 다른 글
[NumPy] 배열 이어 붙이기: np.concatenate() 사용 및 설명 (0) | 2024.10.01 |
---|---|
[NumPy] 배열 전치 및 축 변환: np.transpose() 사용 및 설명 (0) | 2024.10.01 |
[NumPy] 구간을 일정 간격으로 나누기: np.linspace() 사용 및 설명 (0) | 2024.10.01 |
[NumPy] 숫자 배열 생성하기: np.arange() 사용 및 설명 (0) | 2024.10.01 |
[NumPy] 빈 배열 생성하기: np.empty() 사용 및 설명 (0) | 2024.10.01 |