개요
Python 데이터 사이언스를 위한 학습 프로젝트다. 기본 Python 문법부터 NumPy, Pandas를 활용한 데이터 처리, 객체지향 프로그래밍까지 단계별로 학습할 수 있도록 구성되어 있다.
프로젝트 구조
Python - 0 Starting
Python 기초 문법과 자료구조를 다루는 모듈이다.
- ex00: 리스트, 튜플, 집합, 딕셔너리 등 기본 자료구조 사용법
- ex01: 시간 포맷팅 (
format_ft_time.py) - ex02: 타입 검사 (
find_ft_type.py) - ex03: NULL 값 처리 (
NULL_not_found.py) - ex04: 타입 판별 (
whatis.py) - ex05: 빌딩 클래스 (
building.py) - ex06: 문자열 필터링 (
filterstring.py,ft_filter.py) - ex07: SOS 모스 부호 변환 (
sos.py) - ex08: 데이터 로딩 (
Loading.py) - ex09: Python 패키지 빌드 및 배포 (
setup.py,ft_package)
Python - 1 Array
NumPy를 활용한 배열 처리 및 이미지 처리 모듈이다.
- ex00: BMI 계산 (
give_bmi.py) - 키와 몸무게 리스트를 받아 BMI를 계산하고 제한값을 적용 - ex01: 2D 배열 슬라이싱 (
array2D.py) - NumPy를 사용한 2차원 배열 처리 - ex02: 이미지 로딩 (
load_image.py) - NumPy를 사용한 이미지 파일 로딩 - ex03: 이미지 줌 (
zoom.py) - 이미지 확대/축소 처리 - ex04: 이미지 회전 (
rotate.py) - 이미지 회전 처리 - ex05: 이미지 필터링 (
pimp_image.py) - 이미지에 다양한 효과 적용
Python - 2 DataTable
Pandas를 활용한 CSV 데이터 처리 및 시각화 모듈이다.
- ex00: CSV 파일 로딩 (
load_csv.py) - Pandas를 사용한 CSV 파일 읽기 - ex01: 기대 수명 시각화 (
aff_life.py) - Matplotlib을 사용한 국가별 기대 수명 그래프 - ex02: 인구 데이터 처리 (
aff_pop.py) - 인구 데이터 분석 및 시각화 - ex03: 기대 수명 예측 (
projection_life.py) - 소득과 기대 수명 데이터를 활용한 예측
Python - 3 OOP
객체지향 프로그래밍 개념을 다루는 모듈이다.
- ex00: 추상 클래스와 인터페이스 (
S1E9.py) - ABC 모듈을 사용한 추상 클래스 구현 - ex01: 다중 상속 (
S1E7.py,S1E9.py) - 다중 상속과 메서드 해결 순서(MRO) - ex02: 다이아몬드 문제 (
DiamondTrap.py) - 다중 상속에서 발생하는 다이아몬드 문제 해결 - ex03: 연산자 오버로딩 (
ft_calculator.py) - 매직 메서드를 사용한 연산자 오버로딩 - ex04: 고급 연산자 오버로딩 (
ft_calculator.py) - 더 복잡한 연산자 오버로딩 예제
Python - 4 Dod
기타 고급 Python 개념들을 다루는 모듈이다.
- ex00: 통계 함수 (
statistics.py) - 평균, 중앙값, 사분위수, 표준편차, 분산 계산 - ex01: 클로저와 함수형 프로그래밍 (
in_out.py) - 외부 함수와 내부 함수를 사용한 클로저 구현 - ex02: 데코레이터와 호출 제한 (
callLimit.py) - 함수 호출 횟수 제한 데코레이터 - ex03: 학생 관리 시스템 (
new_student.py) - 클래스를 활용한 학생 정보 관리
주요 기능
데이터 처리
- NumPy를 활용한 다차원 배열 처리
- Pandas를 활용한 CSV 데이터 로딩 및 분석
- 이미지 처리 및 변환
통계 분석
- 기본 통계량 계산 (평균, 중앙값, 표준편차 등)
- 데이터 시각화 (Matplotlib)
객체지향 프로그래밍
- 추상 클래스와 인터페이스
- 다중 상속 및 MRO
- 연산자 오버로딩
- 클로저와 데코레이터
사용된 주요 라이브러리
- NumPy: 배열 처리 및 수치 연산
- Pandas: 데이터프레임 처리 및 CSV 파일 읽기
- Matplotlib: 데이터 시각화
실행 방법
각 모듈의 tester.py 파일을 실행하여 해당 연습 문제를 테스트할 수 있다.
# 예시: BMI 계산 모듈 테스트
cd "Python - 1 Array/ex00"
python tester.py
학습 목표
이 프로젝트를 통해 다음을 학습할 수 있다:
- Python 기본 문법 및 자료구조
- NumPy를 활용한 배열 처리
- Pandas를 활용한 데이터 분석
- 객체지향 프로그래밍 개념
- 함수형 프로그래밍 기법
- Python 패키지 빌드 및 배포
참고사항
- 각 모듈은 독립적으로 실행 가능하다
tester.py파일을 통해 각 모듈의 기능을 테스트할 수 있다- 일부 모듈은 CSV 파일이나 이미지 파일이 필요하다