[python] NumPy의 다차원 배열을 다루는 방법에 대해 설명해주세요.

NumPy는 파이썬의 고성능 수치 계산 라이브러리로 다차원 배열을 다루는 데에 특화되어 있습니다. 이번 포스트에서는 NumPy를 사용하여 다차원 배열을 다루는 방법에 대해 알아보겠습니다.

NumPy 다차원 배열 생성하기

NumPy에서 배열은 ndarray (n-dimensional array) 객체로 표현됩니다. 다음은 NumPy 배열을 생성하는 몇 가지 방법입니다.

1. 리스트로부터 배열 생성하기

import numpy as np

my_list = [1, 2, 3, 4, 5]
arr = np.array(my_list)

print(arr)  # 출력: [1 2 3 4 5]

2. 초기값을 갖는 배열 생성하기

import numpy as np

zeros_arr = np.zeros((3, 4))  # 3x4 크기의 0으로 초기화된 배열 생성
ones_arr = np.ones((2, 3, 2))  # 2x3x2 크기의 1로 초기화된 배열 생성
random_arr = np.random.rand(2, 2)  # 2x2 크기의 난수로 초기화된 배열 생성

print(zeros_arr)
print(ones_arr)
print(random_arr)

3. 범위를 갖는 배열 생성하기

import numpy as np

range_arr = np.arange(1, 10)  # 1부터 9까지의 숫자로 이루어진 배열 생성
linspace_arr = np.linspace(0, 1, 5)  # 0부터 1까지 범위를 5 등분한 숫자로 이루어진 배열 생성

print(range_arr)
print(linspace_arr)

다차원 배열 다루기

NumPy는 다차원 배열에 대해 다양한 연산을 지원합니다. 몇 가지 예제를 통해 다차원 배열을 다루는 방법을 알아보겠습니다.

1. 배열 인덱싱

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

print(arr[0])  # 출력: [1 2 3]
print(arr[:, 1])  # 출력: [2 5 8]
print(arr[1:, :2])  # 출력: [[4 5] [7 8]]

2. 배열 형태 변경하기

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

reshaped_arr = arr.reshape(3, 2)  # 3x2 형태로 배열 재구성
flattened_arr = arr.flatten()  # 1차원 배열로 변환

print(reshaped_arr)
print(flattened_arr)

3. 배열 연산 수행하기

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])

sum_arr = arr1 + arr2  # 배열 간 덧셈 연산
prod_arr = arr1 * arr2  # 배열 간 곱셈 연산
dot_product = np.dot(arr1, arr2)  # 배열 간 행렬 곱셈

print(sum_arr)
print(prod_arr)
print(dot_product)

결론

NumPy를 사용하면 다차원 배열을 쉽게 다룰 수 있습니다. 배열 생성 방법과 다양한 배열 연산을 익혀서 데이터 분석이나 수치 계산을 할 때 유용하게 활용해보세요.

참고 자료