파이썬에서 NumPy로 다차원 배열 다루기 – 효율적인 배열 생성과 조작

안녕하세요, 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]]
        

이상으로 NumPy를 사용한 다차원 배열의 생성과 조작 방법에 대해 알아보았습니다. 다음 포스팅에서 또 만나요!

감사합니다!