[파이썬][numpy] numpy에서 배열의 형상 변경

numpy는 파이썬에서 수치 계산을 위한 핵심 라이브러리입니다. numpy를 사용하면 다차원 배열을 효율적으로 다룰 수 있으며, 배열의 형상(shape)을 변경하는 기능도 제공합니다.

이번 글에서는 numpy를 사용하여 배열의 형상을 변경하는 방법에 대해 알아보겠습니다.

1. reshape 함수를 이용한 형상 변경

numpy에서 배열의 형상을 변경하기 위해 가장 많이 사용되는 함수는 reshape입니다. 이 함수는 배열의 형상(차원 및 크기)을 변경하는 데 사용됩니다.

예를 들어, 1차원 배열을 2차원 배열로 형상을 변경하려면 reshape 함수를 사용하면 됩니다.

import numpy as np

# 1차원 배열 생성
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 배열의 형상 변경
reshaped_arr = np.reshape(arr, (3, 3))

print(reshaped_arr)

출력 결과는 다음과 같습니다.

[[1 2 3]
 [4 5 6]
 [7 8 9]]

reshape 함수를 사용하여 형상을 변경할 때는 변경하려는 배열의 크기와 변경 후의 크기가 일치해야 합니다. 위 예제에서는 1차원 배열의 크기가 9이고, 2차원 배열로 변경하기 위해 (3, 3) 크기의 배열로 변경하였습니다.

2. transpose 함수를 이용한 형상 변경

또 다른 배열의 형상을 변경하는 방법은 transpose 함수를 사용하는 것입니다. transpose 함수를 사용하면 배열의 차원을 뒤집을 수 있습니다.

import numpy as np

# 2차원 배열 생성
arr = np.array([[1, 2, 3], 
                [4, 5, 6], 
                [7, 8, 9]])

# 배열의 형상 변경
transposed_arr = np.transpose(arr)

print(transposed_arr)

출력 결과는 다음과 같습니다.

[[1 4 7]
 [2 5 8]
 [3 6 9]]

transpose 함수는 주어진 배열의 차원을 뒤집어주기 때문에, 위 예제에서는 (3, 3) 형태의 2차원 배열을 (3, 3) 형태로 변경하였습니다.

3. resize 함수를 이용한 형상 변경

resize 함수는 배열의 크기를 변경하는 데 사용됩니다. 이 함수는 reshape와는 달리, 배열의 크기가 일치하지 않아도 자동으로 크기를 조정해줍니다.

import numpy as np

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

# 배열의 형상 변경
resized_arr = np.resize(arr, (4, 4))

print(resized_arr)

출력 결과는 다음과 같습니다.

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

resize 함수를 사용하여 형상을 변경할 때는 자동으로 크기를 조정하기 때문에, 변경 전의 배열의 형상과는 다른 형상으로 변경할 수 있습니다.

마무리

이번 글에서는 numpy에서 배열의 형상을 변경하는 방법에 대해 알아보았습니다. reshape, transpose, resize 함수를 사용하면 배열의 형상을 쉽게 변경할 수 있습니다. 이를 통해 numpy를 더 효율적으로 활용할 수 있으며, 다양한 수치 계산에 유용하게 사용할 수 있습니다.