본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.
본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.
이미지 로딩 중...
AI Generated
2025. 10. 31. · 40 Views
Data Science 최신 기능 소개
2024-2025년 데이터 과학 분야의 최신 기능과 트렌드를 소개합니다. Polars, DuckDB, 그리고 최신 머신러닝 도구들을 활용하여 데이터 분석 효율을 극대화하는 방법을 배워보세요.
들어가며
이 글에서는 Data Science 최신 기능 소개에 대해 상세히 알아보겠습니다. 총 10가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.
목차
- Polars_DataFrame_기본_사용법
- DuckDB_SQL_쿼리_실행
- Polars_Lazy_Evaluation
- Pydantic_데이터_검증
- Plotly_인터랙티브_시각화
- Scikit-learn_Pipeline
- Pandas_Query_메서드
- NumPy_배열_브로드캐스팅
- Joblib_병렬_처리
- Pathlib_파일_경로_관리
1. Polars DataFrame 기본 사용법
개요
Pandas보다 10배 빠른 Polars 라이브러리로 DataFrame을 생성하고 조작하는 방법입니다.
코드 예제
import polars as pl
df = pl.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'score': [85.5, 92.0, 78.5]
})
result = df.filter(pl.col('age') > 28).select(['name', 'score'])
print(result)
설명
Polars는 Rust 기반의 고성능 데이터 프레임 라이브러리로, 표현식 기반의 직관적인 API를 제공합니다.
2. DuckDB SQL 쿼리 실행
개요
DuckDB를 사용하여 Python에서 DataFrame에 직접 SQL 쿼리를 실행할 수 있습니다.
코드 예제
import duckdb
import pandas as pd
df = pd.DataFrame({'id': [1, 2, 3], 'value': [100, 200, 300]})
result = duckdb.query("""
SELECT id, value * 1.1 as new_value
FROM df
WHERE value > 150
""").to_df()
print(result)
설명
DuckDB는 인메모리 분석용 SQL 데이터베이스로, Pandas DataFrame에 직접 SQL을 실행할 수 있습니다.
3. Polars Lazy Evaluation
개요
Lazy API를 사용하면 쿼리 최적화를 자동으로 수행하여 성능을 극대화할 수 있습니다.
코드 예제
import polars as pl
df = pl.scan_csv('data.csv')
query = (df
.filter(pl.col('age') > 25)
.groupby('department')
.agg(pl.col('salary').mean())
)
result = query.collect()
설명
scan_csv와 collect 사이의 연산들은 실행 계획으로 최적화되어 한 번에 효율적으로 실행됩니다.
4. Pydantic 데이터 검증
개요
Pydantic v2로 데이터 타입을 자동으로 검증하고 변환하여 안전한 데이터 처리를 보장합니다.
코드 예제
from pydantic import BaseModel, Field
class UserData(BaseModel):
name: str
age: int = Field(gt=0, lt=150)
email: str
user = UserData(name='Alice', age=25, email='alice@example.com')
print(f'{user.name}는 {user.age}살입니다')
설명
Pydantic은 타입 힌트 기반으로 데이터를 자동 검증하고, 잘못된 데이터 입력 시 명확한 에러를 반환합니다.
5. Plotly 인터랙티브 시각화
개요
Plotly Express를 사용하여 몇 줄의 코드로 인터랙티브한 차트를 생성할 수 있습니다.
코드 예제
import plotly.express as px
import pandas as pd
df = pd.DataFrame({
'category': ['A', 'B', 'C', 'D'],
'values': [23, 45, 56, 78]
})
fig = px.bar(df, x='category', y='values',
title='Interactive Bar Chart')
fig.show()
설명
Plotly는 줌, 패닝, 호버 등의 인터랙티브 기능이 내장된 시각화를 간단하게 생성할 수 있습니다.
6. Scikit-learn Pipeline
개요
Pipeline을 사용하여 데이터 전처리와 모델 학습을 하나의 워크플로우로 관리합니다.
코드 예제
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
pipeline = Pipeline([
('scaler', StandardScaler()),
('classifier', RandomForestClassifier(n_estimators=100))
])
pipeline.fit(X_train, y_train)
predictions = pipeline.predict(X_test)
설명
Pipeline은 전처리와 모델을 연결하여 코드를 간결하게 만들고, 데이터 누수를 방지합니다.
7. Pandas Query 메서드
개요
SQL과 유사한 문자열 표현식으로 DataFrame을 필터링하여 가독성을 높입니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'salary': [50000, 60000, 70000]
})
result = df.query('age > 25 and salary >= 60000')
print(result)
설명
query 메서드는 복잡한 조건 필터링을 문자열 표현식으로 간단하게 작성할 수 있게 해줍니다.
8. NumPy 배열 브로드캐스팅
개요
브로드캐스팅을 활용하면 반복문 없이 다른 크기의 배열 간 연산을 효율적으로 수행할 수 있습니다.
코드 예제
import numpy as np
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
row_vector = np.array([10, 20, 30])
result = matrix + row_vector
print(result)
설명
NumPy는 자동으로 작은 배열의 차원을 확장하여 큰 배열과 연산하므로, 벡터화된 고속 연산이 가능합니다.
9. Joblib 병렬 처리
개요
Joblib을 사용하여 데이터 처리 작업을 병렬로 실행하여 처리 속도를 크게 향상시킵니다.
코드 예제
from joblib import Parallel, delayed
def process_item(x):
return x ** 2
data = range(1000)
results = Parallel(n_jobs=-1)(
delayed(process_item)(x) for x in data
)
print(f'처리 완료: {len(results)}개 항목')
설명
n_jobs=-1로 설정하면 모든 CPU 코어를 활용하여 대량의 데이터를 병렬로 처리할 수 있습니다.
10. Pathlib 파일 경로 관리
개요
pathlib를 사용하면 운영체제에 독립적인 파일 경로를 객체 지향적으로 다룰 수 있습니다.
코드 예제
from pathlib import Path
data_dir = Path('data')
csv_files = list(data_dir.glob('*.csv'))
for file in csv_files:
print(f'파일명: {file.name}, 크기: {file.stat().st_size}')
output_path = data_dir / 'processed' / 'result.csv'
설명
Path 객체는 문자열 연결 대신 / 연산자로 경로를 조합하고, 파일 시스템 작업을 간편하게 수행합니다.
마치며
이번 글에서는 Data Science 최신 기능 소개에 대해 알아보았습니다. 총 10가지 개념을 다루었으며, 각각의 사용법과 예제를 살펴보았습니다.
관련 태그
#Python #Polars #DuckDB #DataAnalysis #MachineLearning
댓글 (0)
함께 보면 좋은 카드 뉴스
vLLM 통합 완벽 가이드
대규모 언어 모델 추론을 획기적으로 가속화하는 vLLM의 설치부터 실전 서비스 구축까지 다룹니다. PagedAttention과 연속 배칭 기술로 GPU 메모리를 효율적으로 활용하는 방법을 배웁니다.
Web UI Demo 구축 완벽 가이드
Gradio를 활용하여 머신러닝 모델과 AI 서비스를 위한 웹 인터페이스를 구축하는 방법을 다룹니다. 코드 몇 줄만으로 전문적인 데모 페이지를 만들고 배포하는 과정을 초급자도 쉽게 따라할 수 있도록 설명합니다.
Sandboxing & Execution Control 완벽 가이드
AI 에이전트가 코드를 실행할 때 반드시 필요한 보안 기술인 샌드박싱과 실행 제어에 대해 알아봅니다. 격리된 환경에서 안전하게 코드를 실행하고, 악성 동작을 탐지하는 방법을 단계별로 설명합니다.
Voice Design then Clone 워크플로우 완벽 가이드
AI 음성 합성에서 일관된 캐릭터 음성을 만드는 Voice Design then Clone 워크플로우를 설명합니다. 참조 음성 생성부터 재사용 가능한 캐릭터 구축까지 실무 활용법을 다룹니다.
Tool Use 완벽 가이드 - Shell, Browser, DB 실전 활용
AI 에이전트가 외부 도구를 활용하여 셸 명령어 실행, 브라우저 자동화, 데이터베이스 접근 등을 수행하는 방법을 배웁니다. 실무에서 바로 적용할 수 있는 패턴과 베스트 프랙티스를 담았습니다.