728x90
반응형
NumPy, Pandas, SciPy에 대한 설명
1. NumPy (Numerical Python)
NumPy는 파이썬에서 수치 계산을 위한 핵심 라이브러리입니다.
주로 다차원 배열 객체(ndarray
)를 다루며,
배열을 기반으로 한 수학적 연산을 빠르게 처리할 수 있도록 최적화된 함수들을 제공합니다.
주요 특징
- 다차원 배열:
ndarray
객체를 사용하여 벡터, 행렬 등의 배열을 효율적으로 처리할 수 있습니다. - 수학적 함수: 배열의 원소에 대해 벡터화된 수학적 연산을 빠르게 처리할 수 있습니다.
- 브로드캐스팅: 크기가 다른 배열 간에도 연산이 가능하게 하는 기능입니다.
- 선형대수 및 난수 생성: 행렬 곱셈, 고유값 계산, 난수 생성 등을 지원합니다.
예시 코드
import numpy as np
# 배열 생성
arr = np.array([1, 2, 3, 4])
# 배열의 제곱
arr_squared = arr ** 2
print(arr_squared) # [1 4 9 16]
# 브로드캐스팅 예시
arr2 = np.array([10, 20, 30, 40])
sum_arr = arr + arr2
print(sum_arr) # [11 22 33 44]
# 행렬 곱셈
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
matrix_product = np.dot(matrix1, matrix2)
print(matrix_product)
2. Pandas
Pandas는 데이터 조작 및 분석을 위한 라이브러리로, 주로 표 형식의 데이터를 다룰 때 유용합니다. DataFrame
과 Series
라는 두 가지 주요 데이터 구조를 사용하여 데이터 분석을 간단하고 직관적으로 할 수 있게 해줍니다.
주요 특징
- DataFrame: 행과 열로 구성된 표 형태의 데이터 구조로, SQL 테이블이나 엑셀 시트와 유사합니다.
- Series: 1차원 배열로, 주로 하나의 열에 해당하는 데이터 구조입니다.
- 데이터 조작: 데이터 필터링, 그룹화, 결합, 변환 등의 다양한 기능을 제공합니다.
- 결측값 처리: 결측값(NaN)을 처리하는 기능이 내장되어 있어 데이터 전처리가 용이합니다.
예시 코드
import pandas as pd
# DataFrame 생성
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [24, 27, 22],
'Score': [85, 90, 88]}
df = pd.DataFrame(data)
# 데이터 조회
print(df)
# 특정 열에 접근
print(df['Name'])
# 조건에 맞는 행 필터링
print(df[df['Age'] > 23])
# 열 추가
df['Pass'] = df['Score'] >= 80
print(df)
3. SciPy (Scientific Python)
SciPy는 NumPy의 기능을 기반으로, 더 고급 수학적, 과학적 계산을 위한 라이브러리입니다.
수치 해석, 최적화, 신호 처리, 통계 등 다양한 분야에서 사용됩니다. SciPy는 여러 모듈로 구성되어 있으며,
수학적인 문제를 해결하는 데 필요한 많은 함수들을 제공합니다.
주요 특징
- 최적화: 비선형 최적화, 최소화 문제 등을 해결할 수 있는 함수들.
- 선형대수: 고급 선형대수 기능 (행렬 분해, 고유값 계산 등).
- 신호 처리: 필터링, 푸리에 변환, 신호 분석 등의 기능을 제공합니다.
- 통계: 확률 분포, t-검정, 회귀 분석 등의 통계 기능을 제공합니다.
- 고급 수학: 미분방정식 해결, 다항식 근 구하기, 수치 적분 등.
예시 코드
import scipy.optimize as opt
import numpy as np
# 간단한 최적화 예시
# f(x) = x^2 + 3x + 2 의 최소값을 찾기
def func(x):
return x**2 + 3*x + 2
result = opt.minimize(func, 0) # x=0에서 시작
print(result)
# 선형 방정식 풀기 (Ax = b)
A = np.array([[2, 3], [4, 5]])
b = np.array([5, 11])
x = np.linalg.solve(A, b)
print(x) # [1. 1.]
라이브러리 간 차이점
- NumPy: 수치 계산을 위한 핵심 라이브러리로 배열 연산, 선형대수, 난수 생성 등 빠른 계산을 지원합니다.
- Pandas: 주로 표 형식의 데이터를 다루기 위한 라이브러리로, 데이터 전처리 및 분석에 최적화되어 있습니다.
- SciPy: 고급 수학적, 과학적 계산을 위한 라이브러리로, NumPy와 Pandas에서 제공하는 기본적인 계산을 넘어서 수치 해석, 최적화, 통계 등을 다룹니다.
예시 요약
- NumPy는 수치 계산의 기본적인 연산을 빠르게 처리합니다.
- Pandas는 표 형식 데이터를 처리하고 분석하는 데 유용합니다.
- SciPy는 과학적 계산과 고급 수학적 문제 해결을 위한 추가적인 기능을 제공합니다.
이 세 가지 라이브러리는 데이터 분석 및 과학적 계산에서 중요한 역할을 하며,
함께 사용하면 매우 강력한 데이터 처리 및 분석 도구가 됩니다.
728x90
반응형
'programming language > Python' 카테고리의 다른 글
Python에서 += 연산자 (0) | 2025.01.23 |
---|---|
파이썬에 대하여 : python의 시작 (0) | 2025.01.12 |
[python] Class의 주석에 대해서 """ """ (0) | 2025.01.12 |
[python] a**b 와 pow(a,b)차이 및 a^b연산 (0) | 2025.01.12 |
단축키 : VSCode에서 Jupyter Notebook (0) | 2025.01.12 |