Python/Python 심화

Python NumPy를 이용한 수치 계산

임베디드 친구 2025. 7. 28. 20:07
728x90
반응형

Python NumPy를 이용한 수치 계산

NumPy는 Python에서 수치 계산을 효과적으로 수행할 수 있게 해주는 강력한 라이브러리입니다. 과학적 계산, 데이터 분석, 머신러닝 등 다양한 분야에서 활용되며, 특히 벡터와 행렬 연산에서 탁월한 성능을 자랑합니다. 이번 포스팅에서는 NumPy의 주요 기능과 수치 계산 활용 예제를 통해 기본 개념을 다지고 실전 활용 능력을 키워보겠습니다.


1. NumPy란 무엇인가?

NumPy는 "Numerical Python"의 줄임말로, 다차원 배열 객체와 다양한 수치 계산 기능을 제공합니다. NumPy의 주요 특징은 다음과 같습니다:

  • 빠른 연산 속도: NumPy 배열은 일반 Python 리스트보다 빠릅니다.
  • 다양한 함수 지원: 수학, 통계, 선형대수 등 다양한 연산 함수가 내장되어 있습니다.
  • 다차원 배열 지원: 다차원 데이터를 손쉽게 다룰 수 있습니다.

2. NumPy 설치하기

NumPy는 pip를 통해 설치할 수 있습니다. 다음 명령어를 사용하세요:

pip install numpy

설치 후, Python 환경에서 NumPy를 불러옵니다:

import numpy as np

3. NumPy의 주요 기능

3.1 배열 생성

NumPy 배열은 리스트를 기반으로 생성할 수 있습니다. 다양한 초기화 방법도 지원합니다.

import numpy as np

# 리스트로부터 배열 생성
array = np.array([1, 2, 3, 4, 5])
print(array)  # 출력: [1 2 3 4 5]

# 0으로 초기화된 배열
zeros = np.zeros((3, 3))
print(zeros)

# 1로 초기화된 배열
ones = np.ones((2, 4))
print(ones)

# 랜덤 값으로 초기화된 배열
random_array = np.random.rand(3, 3)
print(random_array)

3.2 배열 연산

NumPy는 배열 간의 산술 연산을 지원하며, 이는 요소별로 수행됩니다.

import numpy as np

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

# 요소별 덧셈
print(array1 + array2)  # 출력: [5 7 9]

# 요소별 곱셈
print(array1 * array2)  # 출력: [ 4 10 18]

# 스칼라 곱셈
print(array1 * 2)  # 출력: [2 4 6]

3.3 배열 인덱싱 및 슬라이싱

NumPy는 복잡한 인덱싱과 슬라이싱을 지원합니다.

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

# 특정 요소 접근
print(array[0, 2])  # 출력: 3

# 슬라이싱
print(array[1:, :2])  # 출력: [[4 5] [7 8]]

3.4 통계 함수

NumPy는 평균, 분산, 표준편차 등을 계산하는 다양한 통계 함수를 제공합니다.

import numpy as np

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

# 평균
print(np.mean(array))  # 출력: 3.0

# 분산
print(np.var(array))  # 출력: 2.0

# 표준편차
print(np.std(array))  # 출력: 1.414...

4. NumPy를 활용한 실전 예제

4.1 선형 대수 계산

행렬 연산은 과학 및 데이터 분석에서 필수적입니다.

import numpy as np

# 두 행렬의 곱
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
result = np.dot(matrix1, matrix2)
print(result)  # 출력: [[19 22] [43 50]]

4.2 데이터 분석 예제: BMI 계산

다음은 NumPy를 사용하여 BMI(체질량지수)를 계산하는 간단한 예제입니다.

import numpy as np

# 키(cm)와 몸무게(kg) 데이터
heights = np.array([170, 180, 160, 155]) / 100  # cm를 m로 변환
weights = np.array([70, 80, 60, 50])

# BMI 계산
bmi = weights / (heights ** 2)
print(bmi)  # 출력: BMI 값 배열

# 과체중 여부 확인
print(bmi > 25)  # 출력: [True, True, False, False]

4.3 시뮬레이션 예제: 난수 생성

Monte Carlo 시뮬레이션과 같은 작업에서도 NumPy는 중요한 역할을 합니다.

import numpy as np

# 동전 던지기 시뮬레이션 (1000번)
n = 1000
flips = np.random.choice([0, 1], size=n)

# 앞면이 나온 확률
probability = np.mean(flips)
print(probability)

5. 마무리

NumPy는 Python에서 수치 계산을 수행할 때 필수적인 도구입니다. 배열 연산, 선형 대수, 통계 함수 등을 효과적으로 활용하면 복잡한 계산도 손쉽게 처리할 수 있습니다. 이번 포스팅에서 소개한 기본 개념과 예제를 기반으로, 다양한 실전 문제를 해결해보세요.

728x90
반응형