[python] NumPy 배열의 다차원 특성에 대해 설명해주세요.

NumPy는 파이썬에서 과학적이고 수치적인 연산을 위한 강력한 패키지입니다. NumPy 배열은 이러한 수치 연산을 위해 사용되는 핵심 데이터 구조입니다.

NumPy 배열은 다차원 데이터를 저장하고 처리하기 위한 효율적인 방법을 제공합니다. 다차원 배열은 1차원 배열을 원소로 갖는 다차원 컨테이너로 생각할 수 있습니다. 다차원 배열의 각 차원은 축(axis)라고 불리며, 각 축은 그에 따라 위치를 가집니다.

1. 배열 생성하기

NumPy 배열을 생성하는 가장 기본적인 방법은 numpy.array() 함수를 사용하는 것입니다. 이 함수는 파이썬 리스트를 인자로 받아서 NumPy 배열로 변환해줍니다. 예를 들어, 다음과 같이 2차원 배열을 생성할 수 있습니다.

import numpy as np

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

이렇게 생성된 my_array는 2차원 배열이며, [1, 2, 3][4, 5, 6]이라는 1차원 배열을 원소로 가지고 있습니다.

2. 배열 차원 및 크기

NumPy 배열의 차원은 ndim 속성을 통해 확인할 수 있습니다. 예를 들어, 다음과 같이 2차원 배열의 차원을 확인할 수 있습니다.

print(my_array.ndim)

NumPy 배열의 크기는 shape 속성을 통해 확인할 수 있습니다. 예를 들어, 다음과 같이 2차원 배열의 크기를 확인할 수 있습니다.

print(my_array.shape)

3. 배열 인덱싱과 슬라이싱

NumPy 배열의 인덱싱은 파이썬의 리스트 인덱싱과 유사합니다. 예를 들어, 2차원 배열에서 특정 원소를 접근하기 위해서는 인덱스를 이용합니다.

print(my_array[0, 1])  # 첫 번째 행의 두 번째 열의 값을 출력

NumPy 배열의 슬라이싱은 파이썬의 리스트 슬라이싱과 유사합니다. 예를 들어, 다음과 같이 2차원 배열의 부분 배열을 얻을 수 있습니다.

print(my_array[:1, :2])  # 첫 번째 행의 처음부터 두 번째 열까지의 부분 배열을 출력

4. 배열 연산

NumPy 배열은 다른 배열과 사칙연산을 비롯한 다양한 수학적 연산을 수행할 수 있습니다. 예를 들어, 배열 간의 합, 차, 곱, 나눗셈 등을 다음과 같이 수행할 수 있습니다.

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

sum_array = array1 + array2
diff_array = array1 - array2
product_array = array1 * array2
quotient_array = array1 / array2

print(sum_array)
print(diff_array)
print(product_array)
print(quotient_array)

5. 배열의 통계적 연산

NumPy 배열은 통계적인 측면에서도 다양한 연산을 제공합니다. 예를 들어, 배열의 합, 평균, 분산, 표준편차 등을 다음과 같이 계산할 수 있습니다.

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

array_sum = np.sum(my_array)
array_mean = np.mean(my_array)
array_var = np.var(my_array)
array_std = np.std(my_array)

print(array_sum)
print(array_mean)
print(array_var)
print(array_std)

NumPy 배열의 다차원 특성은 데이터를 효율적으로 저장하고 처리하기 위한 강력한 기능을 제공합니다. NumPy를 활용하여 다차원 배열을 다루는 방법에 익숙해지면 데이터 분석 및 과학적 연산에 많은 도움이 될 것입니다.


참고 자료: