파이썬의 강력한 수치 계산 라이브러리인 NumPy에 대해서 알아보도록 하겠습니다. NumPy는 대규모 다차원 배열과 행렬을 효율적으로 처리할 수 있는 도구로, 데이터 분석과 과학 계산에 필수적인 라이브러리 입니다.
NumPy 소개
NumPy는 "Numerical Python"의 줄임말로, 파이썬에서 수치 계산을 위한 핵심 라이브러리 입니다.
주요 특징
- 고성능 다차원 배열 객체(ndarray)
- 브로드캐스팅 기능을 통한 백터화 연산
- 반복문 없이 전체 데이터 배열에 대한 빠른 연산 지원
- 선형대수, 푸리에 변환, 난수 생성 등 다양한 수학 함수 제공
NumPy 설치 및 임포트
NumPy를 사용하기 위해서는 먼저 설치해야 합니다.
pip install numpy
그리고 파이썬 코드에서 다음과 같이 임포트 합니다.
import numpy as np
NumPy 배열 생성
NumPy의 기본 데이터 구조는 ndarray(n-dimensional array) 입니다. 다양한 방법으로 배열을 생성할 수 있습니다.
import numpy as np
# 리스트로부터 배열 생성
arr1 = np.array([1,2,3,4,5])
# 0으로 채워진 배열 생성
arr2 = np.zeros((3,3))
# 1로 채워진 배열 생성
arr3 = np.ones((2,4))
# 특정 범위의 균일한 간격의 숫지로 배열 생성
arr4 = np.arange(0, 10, 2)
# 랜덤한 값으로 배열 생성
arr5 = np.random.rand(3,3)
print("arr1", arr1)
print("arr2", arr2)
print("arr3", arr3)
print("arr4", arr4)
print("arr5", arr5)
배열의 기본 속성
NumPy 배열의 주요 속성들을 사렾보겠습니다.
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print(arr.shape) # 배열의 형태
print(arr.ndim) # 배열의 차원
print(arr.dtype) # 배열의 데이터 타입
print(arr.size) # 배열의 전체 원소
배열 연산
NumPy의 강력한 기능 중 하나는 배열 간 연산 입니다. 이를 통해 백터화된 연산을 수행할 수 있습니다.
ipmort numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
# 배열간 덧셈
print(a+b)
# 배열간 스칼라 곱샘
print(a*2)
# 배열간 곱셈
print(a*b)
# 행렬 곱
c = np.array([[1,2], [3,4]])
d = np.array([[5,6], [7,8]])
print(np.dot(c, d))
배열 인덱싱과 슬라이싱
NumPy 배열은 파이썬 리스트와 유사한 방식으로 인덱싱과 슬라이싱이 가능합니다.
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# 특정 원소 접근
print(arr[1, 2]) # 7
# 행 전체 선택
print(arr[1]) # [5 6 7 8]
# 열 전체 선택
print(arr[:, 1]) # [2 6 10]
# 부분 배열 선택
print(arr[0:2, 1:3]) # [[2 3]
# [6 7]]
배열 변경
배열의 형태를 변경하거나 차원을 추가/제거 할 수 있습니다.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
# 배열 형태 변경
reshaped = arr.reshape((2, 3))
print(reshaped) # [[1 2 3]
# [4 5 6]]
# 새로운 축 추가
expanded = np.expand_dims(arr, axis=0)
print(expanded.shape) # (1, 6)
# 1인 차원 제거
squeezed = np.squeeze(expanded)
print(squeezed.shape) # (6,)
수학 함수
NumPy는 다양한 수학 함수를 제공 합니다.
import numpy as np
arr = np.array([1, 2, 3, 4])
print(np.sum(arr)) # 합계: 10
print(np.mean(arr)) # 평균: 2.5
print(np.std(arr)) # 표준편차: 1.118...
print(np.exp(arr)) # 지수 함수: [2.718... 7.389... 20.085... 54.598...]
print(np.log(arr)) # 자연로그: [0. 0.693... 1.098... 1.386...]
print(np.sin(arr)) # 사인 함수: [0.841... 0.909... 0.141... -0.756...]
브로드캐스팅
브로드캐스팅은 크기가 다른 배열 간의 연산을 가능하게 하는 NumPy의 강력한 기능 입니다.
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])
print(a + b) # [[11 22 33]
# [14 25 36]]
여기서 b는 자동으로 a의 형태에 맞춰서 연산 됩니다.
마치며
이상으로 NumPy를 이용한 수치 계산의 기초에 대해서 알아보았습니다. NumPy는 데이터 분석, 머신러닝, 과학 계산 등 다양한 분야에서 필수적으로 사용되는 라이브러리 입니다. 이번에 다른 NumPy의 기능 중 일부에 불과하며, 더 많은 고급 기능들이 있습니다.
'IT > Python' 카테고리의 다른 글
[Python] 데이터 시각화 Matplotlib 라이브러리 이용하기 (0) | 2025.01.12 |
---|---|
[Python] Pandas로 시작하는 데이터 분석 입문 (0) | 2025.01.11 |
[Python] 파이썬 라이브러리 활용에 대해서 알아보자! (0) | 2025.01.10 |
[Python] 파이썬 파일 입출력에 대해서 알아보자! (0) | 2025.01.10 |
[Python] 파이썬 예외 처리와 디버깅 기법 (0) | 2025.01.10 |