Python 정리

파이썬 - 딥러닝 패키지(pandas,numpy,matplotlib)

dawon-project 2025. 2. 10. 21:03

pandas

  • 데이터 분석과 조작을 위한 Python 라이브러리
    • CSV 파일 등의 데이터를 읽고 원하는 데이터 형식으로 변환
      • csv(comma separated values) 파일 : 데이터를 쉼표로 구분한 파일
  • 주요 자료구조
    • Series : 1차원 배열, 라벨이 있는 데이터
    • DataFrame : 2차원 테이블 구조, 라벨이 있는 행과 열
      • 테이블이란? 가로(행)과 세로(열)로 정렬된 데이터 집합
        • 행(row, 로우)
        • 열(column, 컬럼)
  • 설치 및 import
    • pip install pandas
    • import pandas as pd
      • pip란? 
        • Python 패키지 관리자(Package Installer for Python)
        • Python 라이브러리를 설치 및 관리 위해 사용
        • 주요 명령어 (터미널 명령 프롬프트에서 실행)
          • 패키지 설치 : pip install <패키지명>
          • 패키지 제거 : pip uninstall <패키지명>
          • 설치된 패키지 목록 확인 : pip list
  • Series 자료 구조 생성
    • 리스트 데이터를 사용한 Series 객체 생성
      • 따로 인덱스를 지정하지 않았다면 0부터 시작하는 정수 값으로 인덱싱 됨
    • 딕셔너리 데이터를 사용한 Series 객체 생성
      • key를 인덱스 값으로 사용

  • DataFrame 자료 구조 생성
    • 중첩 리스트 데이터를 사용한 DataFrame 객체 생성
      • 컬럼 명을 옵션으로 지정 가능
    • 딕셔너리 데이터를 사용한 DataFrame 객체 생성
      • key를 컬럼 명으로 사용

  • CSV 파일 읽기
    • CSV 파일 구조
      • 줄 바꿈으로 구분되는 1개 이상의 행(레코드)으로 구성
      • 각 행은 1개 이상의 열(필드)로 구성
      • 필드는 큰 따옴표로 둘러 싸도됨(단, 통일성이 있어야함
    • Excel 파일 읽기
      • openpyxl 모듈 필요
        • 파이썬 표준 모듈이 아니므로 추가 설치 필요
        • pip install openpyxl
      • 실행 명령어
        • ex) df_xl = pd.read_exec('D:/rokey/ch19/data.xlsx')
    • Excel 파일 구조
      • 파일을 북(book)이라고 함
      • 하나의 북 내부에는 여러 개의 시트(sheet)가 존재
      • 각 시트는 행(row)와 열(column)을 가진 2차원 셀(cell)로 구성
    • Excel 파일 기본 생성
      • 마이크로소프트 엑셀 프로그램을 통한 생성
    • 데이터 탐색
      • head() : 데이터 상위 5개 행을 보여주는 함수
      • tail(): 데이터 하위 5개의 행을 보여주는 함수
      • info() : 데이터 요약 정보를 보여주는 함수
      • describe() : 기술 통계를 보여주는 함수
      • sample(x) : Pandas DataFrame에서 임의의 샘플(랜덤한 행)들을 선택하는 함수
        • sample(2) : 데이터 중에 랜덤으로 2개의 샘플을 선택
        • sample(frac =0.5) : 데이터의 50%를 랜덤하게 선택
    • 데이터 조작
      • 데이터 선택 및 필터링 방법
        • 인덱싱을 통한 열 또는 행 선택 ex) df['Name']
        • 인덱싱한 것에 조건을 걸어 조건 필터링
          • ex) df[df['Age'] >30]
      • sort_values(by= 기준열) :  특정 열의 값을 기준으로 정렬할 때 사용
      • 열 추가 및 삭제
        • 열 추가 -> 인덱싱 
          • df['Salary'] = [ 50,60,50]
        • 행 추가 -> loc[] 함수 사용
          • df.loc[len(df)] =[4, 'David', 40, 80000]
        • 행 삭제 -> drop() 함수 사용
          • df.drop(1) # 1 번 인덱스 행 삭제

 

  • concat() : DataFrame 행 연결
    • concat() 함수 매개변수는 데이터 프레임 리스트형

NaN(Not a Number)

  • 결측값(NA, Not Available) 표현
  • 정의되지 않은 값 또는 표현할 수 없는 값 또는 누락된 값
  • 값이 없는 경우, None으로 데이터를 입력 가능
    • 데이터 병합
      • merge(a,b) : 두 개의 DataFrame을 특정 열을 기준으로 병합(Join)하는 기능
    • 결측치 처리
      • isnull() : 결측치 확인하는 함수
      • fillna(value) : 결측치(NaN)를 채우는 함수
    • duplicated() : 중복된 행을 찾을 때 사용하는 함수
    • drop_duplicates() : DataFrame에서 중복된 행을 제거하는 함수

Numpy(Numerical Python) 

  • 다차원 배열 및 행렬 연산 지원 라이브러리
  • 과학 계산을 위한 다양한 함수 제공
  • 설치 및 import
    • pip install numpy
    • import numpy as np
  • 배열 생성
    • arr = np.array([1,2,3,4,5])
  • 배열 속성 확인
    • arr.shape : 배열의 모양
    • arr.dtype : 데이터 타입
  • np.zeros(행,열) : 0으로 초기화된 배열 생성해주는 함수
  • np.ones(행,열) : 1로 초기화된 배열을 만들어 주는 함수
  • np.full((행,열),값) : 특정 값으로 채운 배열을 만들어 주는 함수
  • np.eye(값) : 단위 행렬 함수
    • 단위 행렬 : 행렬의 곱셈에서 항등 역할을 하는 특별한 행렬
      • 곱셈의 결과가 원래의 행렬을 그대로 유지하는 성질을 가진다.
      • 주대각선의 원소가 모두 1
      • 주대각선 외의 모든 원소가 0
      • 크기는 정사각형 (행과 열의 개수가 동일)
  • np.random.rand(행,열) : 랜덤 배열 생성 -> float형
  • np.random.randint(랜덤 시작 값, 랜덤 끝 값, (행, 열)) : 시작 ~ 끝 범위의 랜덤 배열 생성 -> int형
  • 기본 산술 연산
    • 요소별 연산 +, *
      • arr = np.array([1,2,3,4])
      • arr+5
      • arr*2
  • 통계 함수
    • sum() : 배열 총 합을 구하는 함수
    • mean() : 배열의 평균을 구하는 함수
    • max() : 배열 중 제일 큰 값 구하는 함수
    • min() : 배열 중 제일 작은 값 구하는 함수

배열 연산 -> 브로드 캐스트

 

선형 대수 연산

  • np.dat(a,b) : 배열 a와 배열 b의 행렬 곱을 구하는 함수

인덱싱 및 슬라이싱

  • 기본 리스트 인덱싱이나 슬라이싱 방법과 같다

Matplotlib

  • 정적, 애니메이션, 대화형 시각화를 만드는 포괄적 라이브러리
    • 플롯(plot) : 두 개 이상의 변수 간의 관계를 보여주는 그래프
  • 주요 Python 시각화 라이브러리 비교
    • Matplotlib : 기본적이고 유연한 시각화 도구
    • Seaborn : 통계적 데이터 시각화에 적합
  • 설치 및 import
    • pip install matplotlib
    • import matplotlib.pyplot as plt
  • plt.plot(x,y) : 선 그래프 그리는 함수

  • Bar Chart(cartegories, values) :막대그래프 그리는 함수

  • Histogram(히스토그램)
    • 도수분포표를 그래프로 표현. 
    • 가로 축은 계급 / 세로 축은 도수(횟수나 개수)
    • plt.hist 함수를 사용해서 구현

  • Scatter Plot(산점도)
    • 두 변수의 상관 관계를 직교 좌표꼐의 평면에 점으로 표현하는 그래프
    • plt.scatter 함수를 사용해서 구현

  • Pie Chart(파이 차트, 원 그래프)
    • 범주별 구성 비율을 원형으로 표현한 그래프
    • plt.pie 함수를 사용해서 구현

  • Box plot(박스 플롯)
    • 수치 데이터를 표현하는 하나의 방식
    • 전체 데이터로부터 얻어진 다섯가지 요약 치수를 사용
      • 최소값
      • 제 1사분위 수(Q1)
      • 제 2사분위 수 또는 중위수(Q2)
      • 제 3사분위 수 (Q3)
      • 최대값
    • 이상치(outlier) : 데이터에서 일반적인 패턴에서 벗어난 값으로, 다른 값들과 현저하게 차이가 나는 값

-> 빨간 동그라미한 점이 이상치이다

  • plt.subplots(행,열) : 그래프를 그릴 구역을 나눠주는 함수

 

  • 선 커스터마이징

'Python 정리' 카테고리의 다른 글

파이썬 - tkinter  (0) 2025.02.11
파이썬 - 딥러닝 패키지(Seaborn, OpenCV)  (0) 2025.02.11
파이썬 - 알고리즘(DFS,BFS)  (0) 2025.02.10
파이썬 - 알고리즘(큐, 스택)  (0) 2025.02.10
파이썬 - 예외 처리  (0) 2025.02.10