Python/Python Library

NumPy에서의 transpose와 reshape

4OurFuture 2024. 11. 21. 19:30
728x90
반응형

1. transpose: 배열 차원 전환

개념

transpose 함수는 배열의 차원을 전환하는 데 사용됩니다. 즉, 배열의 축을 바꿉니다. 예를 들어, 2D 배열(행렬)에서 행과 열을 서로 바꾸는 것이 일반적인 사용 예입니다.

 

기본 구문

numpy.transpose(a, axes=None)
  • a: 전환할 배열입니다.
  • axes: 전환할 축의 순서를 지정합니다. 주어진 값이 없으면 기본적으로 모든 축을 반전시킵니다.

 

예제

import numpy as np

# 2D 배열 생성
array = np.array([[1, 2, 3],
                  [4, 5, 6]])

# 배열의 전치
transposed_array = np.transpose(array)

print("원본 배열:")
print(array)
print("전치된 배열:")

print(transposed_array)

 

출력:

원본 배열:
[[1 2 3]
 [4 5 6]]

전치된 배열:
[[1 4]
 [2 5]
 [3 6]]



 

 

 

활용 예

transpose는 주로 데이터 전처리 과정에서 데이터의 형태를 조정할 때 사용됩니다. 예를 들어, 이미지 데이터에서는 채널 순서를 변경하거나, 행렬 곱셈을 위해 차원을 맞추는 데 유용합니다.

 

2. reshape: 배열 형태 변경

개념

reshape 함수는 배열의 구조를 변경하지만, 배열의 데이터는 그대로 유지합니다. 즉, 배열의 형태를 바꾸되, 요소의 개수는 변하지 않습니다. 이는 배열의 차원 수를 조정하거나, 일렬로 나열된 데이터를 재구성할 때 유용합니다.

 

기본 구문

numpy.reshape(a, newshape, order='C')
  • a: 형태를 변경할 배열입니다.
  • newshape: 새로 만들 배열의 형태를 지정합니다. 튜플 형태로 입력합니다.
  • order: 배열의 요소를 읽는 순서를 지정합니다. 'C'는 행 우선, 'F'는 열 우선입니다.

예제

import numpy as np

# 1D 배열 생성
array = np.array([1, 2, 3, 4, 5, 6])

# 배열 형태 변경 (2행 3열)
reshaped_array = np.reshape(array, (2, 3))

print("원본 배열:")
print(array)
print("형태가 변경된 배열:")

print(reshaped_array)

 

출력:

원본 배열:

[1 2 3 4 5 6]

형태가 변경된 배열:

[[1 2 3]
 [4 5 6]]

 

활용 예

reshape는 데이터셋의 구조를 변경할 때 유용합니다. 예를 들어, 이미지 데이터를 (높이, 너비, 채널) 형태로 변환하거나, 배치 처리를 위한 배열 크기를 조정할 때 자주 사용됩니다.

 

결론

NumPy의 transpose와 reshape는 배열 조작의 기초를 제공하는 강력한 도구입니다. transpose는 배열의 차원을 전환하는 데 사용되며, reshape는 배열의 형태를 변경하는 데 유용합니다. 이 두 가지 기능을 적절히 활용하면 데이터 전처리 작업을 더욱 효율적으로 수행할 수 있습니다. 딥러닝 모델을 구축할 때 이들 기능을 잘 이해하고 활용하면, 데이터의 형태와 구조를 유연하게 조작할 수 있습니다.


728x90
반응형