소개
이 랩에서는 NumPy 배열의 형태를 조작할 수 있는 NumPy 형태 조작 함수에 대해 배우게 됩니다.
성과
- 배열 형태 변환 (Reshaping arrays)
- 배열 연결 및 분할 (Concatenating and splitting arrays)
- 배열 전치 (Transposing arrays)
이 랩에서는 NumPy 배열의 형태를 조작할 수 있는 NumPy 형태 조작 함수에 대해 배우게 됩니다.
reshape 함수를 사용하면 NumPy 배열의 형태를 변경할 수 있습니다. reshape 함수의 구문은 다음과 같습니다.
np.reshape(a, new_shape)
a는 입력 배열이고, new_shape는 배열의 원하는 새로운 형태입니다.터미널에서 다음 명령을 입력하여 Python 셸을 엽니다.
python3
NumPy 는 이미 설치되어 있으므로 Python 코드에서 임포트할 수 있습니다.
import numpy as np
예시로 (2, 3) 형태의 배열 a를 생성합니다.
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)
출력:
(2, 3)
reshape 함수를 사용하여 이 배열을 (3, 2) 형태로 변환할 수 있습니다.
b = np.reshape(a, (3, 2))
print(b.shape)
print(b)
출력:
(3, 2)
[[1 2]
[3 4]
[5 6]]
NumPy 는 배열을 연결하기 위한 두 가지 함수를 제공합니다.
np.concatenate: 주어진 축을 따라 배열을 연결합니다.np.stack: 새로운 축을 따라 배열을 연결합니다.np.split 함수를 사용하여 배열을 분할할 수 있습니다.
예시로 두 개의 배열 a와 b를 생성합니다.
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.concatenate 함수를 사용하여 첫 번째 축 (0) 을 따라 이 배열들을 연결할 수 있습니다.
c = np.concatenate((a, b))
print(c)
출력:
[1 2 3 4 5 6]
np.stack 함수를 사용하여 새로운 축을 따라 이 배열들을 연결할 수도 있습니다.
d = np.stack((a, b))
print(d)
print(d.shape)
출력:
[[1 2 3]
[4 5 6]]
(2, 3)
예시로 (6,) 형태의 배열 a를 생성합니다.
a = np.array([1, 2, 3, 4, 5, 6])
np.split 함수를 사용하여 이 배열을 길이가 3 인 두 개의 배열로 분할할 수 있습니다.
b, c = np.split(a, 2)
print(b)
print(c)
출력:
[1 2 3]
[4 5 6]
transpose 함수를 사용하면 NumPy 배열의 축을 전치할 수 있습니다. transpose 함수의 구문은 다음과 같습니다.
a.transpose([axis1, axis2, ...])
axis1, axis2 등은 전치할 축입니다.예시로 (2, 3) 형태의 배열 a를 생성합니다.
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(a.shape)
출력:
[[1 2 3]
[4 5 6]]
(2, 3)
transpose 함수를 사용하여 이 배열을 전치할 수 있습니다.
b = a.transpose()
print(b)
print(b.shape)
출력:
[[1 4]
[2 5]
[3 6]]
(3, 2)
배열의 특정 축을 전치할 수도 있습니다. 예를 들어, 다음 코드를 사용하여 배열 a의 축을 전치하여 (3, 2) 형태를 갖도록 할 수 있습니다.
c = a.transpose(1, 0)
print(c)
print(c.shape)
출력:
[[1 4]
[2 5]
[3 6]]
(3, 2)
축하합니다! NumPy Shape Manipulation Lab 을 완료했습니다.
이 랩에서는 NumPy shape 조작 함수인 reshape, concatenate, stack, split, 그리고 transpose를 배웠습니다. 이러한 함수들을 통해 NumPy 배열의 형태를 조작할 수 있으며, 이는 많은 데이터 조작 작업에 필수적입니다.