상세 컨텐츠

본문 제목

데이터분석: 파이썬 기초

카테고리 없음

by 민도리 2025. 10. 31. 21:06

본문

1. 학습 내용 & 활용 분야

파이썬 설치, 출력/변수, 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 조건문(Conditional), 반복문(Loop), 함수(Function), 클래스(Class), 유용한 문법.
  • 데이터 분석 핵심: NumPy, Pandas 라이브러리 사용법.
    • NumPy : 빠르고 효율적인 다차원 배열 처리 (속도)
    • Pandas : 데이터프레임(DataFrame) 및 시리즈(Series) 자료구조 제공 (excel, csv 등 파일 처리)
  • 활용 분야: 데이터 전처리, 계산, 관리, 시각화, AI 모델링(일련의 과정으로 정리된 데이터를 머신러닝, 딥러닝에 구축 및 학습)

2. 출력문 & 변수와 데이터 타입 (Variables & Data Types)

출력문: print() 함수.

  • 활용: sep, end옵션 활용하여 출력 형식 제어.
print('A', 'B', sep='-') → 'A-B', print('Hi', end='!') → 'Hi!'
# sep = 

변수와 데이터 타입: 값을 저장하는 공간. 할당 연산자 (=)로 값 할당

  • 자료형: 정수(Integer), 실수(Float), 문자열(String), 리스트, 튜플, 딕셔너리, 집합(Set).

변수 종류: 문자열, 숫자형 (정수/실수), 불리언(Boolean), None (결측값).

  • 중요: 가변 객체 (Mutable) vs 불변 객체 (Immutable) 구별 중요.

3. 리스트, 튜플, 딕셔너리 (Collections)

용도: 데이터 담기, 정리, 추출. 전처리, 가공, 결과 저장.

  • 인덱싱(Indexing) : 단일 항목 선택
my_list = [10, 20]; print(my_list[0])→10
  • 슬라이싱(Slicing) : 범위 선택.
print(my_list[0:2]) → [10, 20]

3.1 리스트 (List)

특징: 여러 항목을 담는 가변(Mutable) 시퀀스.

data = [1, 'two', 3.0]
  • 메서드:
    • append() : 항목 추가  data.append(4)
    • insert() : 특정 위치 삽입 data.insert(1, 'new')
    • extend() : 리스트 병합 
    • remove() : 특정 값 삭제
    • pop() : 특정 위치 제거 후 반환
    • del 키워드 : 항목 삭제  del data[0]
    • index() : 첫 번째 위치 반환
    • count() : 특정 값 개수
    • sort() : 제자리 정렬
    • sorted() : 새 리스트 반환 (정렬)

3.2 튜플 (Tuple)

특징: 변경 불가(Immutable) 시퀀스. 리스트와 유사.

  • 활용: 경량이며 함수 인자 전달 시 안정성 확보.
  • 변환: list()로 list 변환, tuple()로 tuple 변환.

3.3 딕셔너리 (Dictionary)

특징: 키(Key)-값(Value) 쌍 저장. 키는 고유하며 불변 객체만 사용 가능.

person = {'name': 'Gemini', 'age': 3} 
  • 메서드:
    • keys() : 키 목록 (View 객체)
    • values() : 값 목록 (View 객체)
    • items() : 쌍 목록 (View 객체)
    • get(키, 기본값) : 값 반환, 키 부재 시 기본값 반환
    • pop(키) : 제거 및 값 반환
    • popitem() : 마지막 키-값 쌍 제거 및 반환

4. 조건문과 반복문 (Control Flow)

용도: 특정 조건에 따른 가공, 반복 수행 (데이터 분석, ML 반복 학습).

4.1 조건문 (Conditional Statement)

키워드: if, elif, else 사용.

  • 규칙: 들여쓰기 (Indentation) 필수로 코드 블록 지정.
  • 연산자: and, or, not 연산자 사용 가능.
x =10
if  x > 5:
      print("크다")
elif x == 5:
      print("같다")
else:
      print("작다")

4.2 반복문 (Loop)

For: 반복 가능한 데이터 타입 순회. range() 함수 사용.

  • 활용: for 문에 else 블록 사용 가능 (break 없이 완료 시 실행).
# range() 함수: 0부터 4까지
for i in range(5):
print(i) 

# List 순회
for item in ['A', 'B']:
print(item)

While: 조건을 만족하는 동안 코드 반복 실행.

  • 제어문:
    • break : 반복 중단 if i == 3: break
    • continue : 현재 반복 건너뛰기  if i % 2 == 0: continue
    • pass : 코드를 비워 오류 방지

5. 파이썬 함수 (Function)

  • 정의: def 키워드로 정의. 입력 처리 후 return 키워드로 결과 반환.
  • 목적: 코드 재사용, 모듈화, 가독성 향상.
# 함수 호출
def add(a, b):
      return a + b
print(add(5,3))
  • 변수 범위 (Scope):

전역 변수 (Global): 프로그램 전체 접근. global 사용 시 함수 내 값 변경 가능.

# 100 출력  
g_var = 1
def change_var():
      global g_var
       g_var = 100
change_var()
print(g_var) 

 

지역 변수 (Local): 특정 함수/범위 내에서만 접근

 

인자 (Arguments):

  • 매개변수 (Parameter) : 정의 시 사용.
  • 인수 (Argument) : 호출 시 전달 값.
  • 가변 인수 (Arbitrary Arguments):
    • *args (튜플) : 위치 인수를 여러개 받을 때
    • **kwargs (딕셔너리) : 키워드 인수를 여러개 받을 때

6. 유용한 문법 & 모듈 (Modules)

  • 패키지/라이브러리: 관련 모듈 묶음. import 키워드로 사용 선언.
  • 포맷팅 (Formatting): f-string (f"...") 문법으로 간결한 문자열 포맷팅.
name = 'AI'
print(f"Hello, {name}!")
  • 리스트 컴프리헨션 (List Comprehension): 반복문/조건문으로 리스트 간결하게 생성.
    • 확장: 딕셔너리/집합 컴프리헨션도 가능.
squares = [i*i for i in range(1, 5)] → [1, 4, 9, 16]
  • 람다 (Lambda): lambda 키워드로 정의되는 익명 함수. 한 줄의 간단한 표현식만 포함.
    • 용도: 간결성, 고차 함수 (Higher-Order Function)에 유용.
square = lambda x: x * x; print(square(4))→16
  • Glob: 파일명 패턴 매칭 (와일드카드 *, ? 사용) 검색 도구.
  • Os: 파일/디렉토리, 환경 변수 관리. os.path로 경로 조작.
  • Split/Join:
    • .split() : 문자열을 분할 (구분자 기준).
    • .join() : 리스트 항목들을 특정 구분자로 결합.

7. 클래스 (Class)와 OOP

  • 클래스: 객체 (Object) 생성을 위한 설계도.
    • 구성: 속성(Attribute) : 인스턴스의 상태 (데이터), 메서드(Method) : 클래스 내 정의된 함수 (행위).
    • 초기화: __init__() 메서드로 객체 생성 시 초기화.
class Dog:
     def __init__(self, name):  # 초기화 메서드 (생성자)
           self.name = name       # 속성 정의

def bark(self):   # 메서드
      print(f"{self.name} 멍멍!")

my_dog = Dog("초코")              # 인스턴스 생성

my_dog.bark()                         # 메서드 호출
  • OOP 특징:
    • 다형성 (Polymorphism): 같은 메서드명이 다른 클래스에서 다른 기능 수행.

8. 고급 개념 및 에러 (Advanced & Errors)

  • 불리안 인덱싱 (Boolean Indexing): 조건 (참/거짓)에 따라 배열/리스트의 요소를 선택하는 방법.
  • 데코레이터 (Decorator): @ 기호 사용. 함수/메서드를 랩핑하여 추가 기능 부여 (기존 코드 수정 없이).
  • 실행 모드:
    • 즉시 실행 모드 (Eager Execution): 순차적 실행, 즉시 결과 평가.
    • 그래프 모드 (Graph Execution): 코드를 그래프로 변환 후 실행, 최적화/병렬 처리.
  • 주요 에러:
    • SyntaxError : 구문 오류
    • IndentationError : 들여쓰기 오류
    • NameError : 정의되지 않은 이름 사용
    • TypeError : 호환되지 않는 타입 연산
    • IndexError : 시퀀스 범위 초과
    • KeyError : 딕셔너리에 없는 키 접근
    • ValueError : 값은 유효하나 내용이 부적절

댓글 영역