안녕하세요, mj입니다!
이번 포스팅에서는 NumPy를 사용하여 다차원 배열을 생성하고 조작하는 방법에 대해 알아보겠습니다.
NumPy란?
NumPy는 파이썬에서 과학 계산을 위한 필수 라이브러리입니다. 특히, 다차원 배열을 쉽게 다룰 수 있는 기능을 제공합니다. NumPy를 활용하면 수치 연산을 빠르고 효율적으로 수행할 수 있습니다.
다차원 배열 생성하기
NumPy를 사용하여 다차원 배열을 생성하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 numpy.array() 함수를 사용하는 것입니다.
1. 리스트를 이용한 배열 생성
import numpy as np
# 1차원 배열
arr_1d = np.array([1, 2, 3])
print(arr_1d)
# 2차원 배열
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)
# 3차원 배열
arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(arr_3d)
출력 결과
[1 2 3]
[[1 2 3]
[4 5 6]]
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
2. zeros() 함수로 배열 생성
# 2차원 배열 생성 (모든 요소가 0인 배열)
arr_zeros = np.zeros((2, 3))
print(arr_zeros)
출력 결과
[[0. 0. 0.]
[0. 0. 0.]]
3. ones() 함수로 배열 생성
# 3차원 배열 생성 (모든 요소가 1인 배열)
arr_ones = np.ones((2, 2, 2))
print(arr_ones)
출력 결과
[[[1. 1.]
[1. 1.]]
[[1. 1.]
[1. 1.]]]
다차원 배열 조작하기
NumPy에서는 다양한 방법으로 배열을 조작할 수 있습니다. 여기서는 슬라이싱, 인덱싱, 연산 등을 다루겠습니다.
1. 슬라이싱
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 2행 3열의 요소 선택
print(arr[1, 2]) # 출력: 6
# 1행 전체 선택
print(arr[0, :]) # 출력: [1 2 3]
2. 배열 결합
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
# 수직 결합
arr_vstack = np.vstack((arr1, arr2))
print(arr_vstack)
# 수평 결합
arr_hstack = np.hstack((arr1, arr2))
print(arr_hstack)
출력 결과
[[1 2]
[3 4]
[5 6]
[7 8]]
[[1 2 5 6]
[3 4 7 8]]
3. 배열 연산
arr_a = np.array([[1, 2], [3, 4]])
arr_b = np.array([[5, 6], [7, 8]])
# 배열 덧셈
arr_sum = arr_a + arr_b
print(arr_sum)
# 배열 곱셈
arr_product = arr_a * arr_b
print(arr_product)
출력 결과
[[ 6 8]
[10 12]]
[[ 5 12]
[21 32]]