[부스트캠프 AI-Tech] 1주차 Day 3

LKM·2022년 1월 23일
0

✏️학습 정리


5-1 Exception, File, Log Handling

  • Exception

    • 예상 가능한 예외
      • 사전에 인지할 수 있는 예외
    • 예상이 불가능한 예외
      • 인터프리터 과정에서 발생하는 예외
    • 예외 처리 (파이썬)
      try:
      	예외 발생 가능 코드
      except <Exception Type>:
      	예외 발생시 동작하는 코드
      else:
      	예외가 발생하지 않을 때 동작하는 코드
      
      # try ~ except ~ finally
      finally:
      	예외 발생 여부와 상관없이 실행됨
    • 기본적으로 제공하는 예외 ref.https://harryp.tistory.com/865
    • raise
      • 필요에 따라 강제로 Exception을 발생

        raise <Exception Type>(예외 정보)
    • assert
      • 특정 조건에 만족하지 않을 경우 예외 발생

        assert 예외조건
  • File

    • file
      • 컴퓨터에서 정보를 저장하는 논리적인 단위

      • 실행, 쓰기, 읽기 등을 할 수 있음

      • 종류

    • directory
      • 폴더 또는 디렉토리로 불림
      • 파일과 다른 디렉토리를 포함할 수 있음
    • file I /O
      f = open("파일 이름", "접근 모드")
      f.close()
      
      ## 접근 모드
      "r"  # 읽기 모드
      "w"  # 쓰기 모드 (encoding도 같이 써야한다 -> 문자를 저장하는 방식 선택)
      "a"  # 추가 모드 (파일의 마지막에 새로운 내용 추가)
      
      # with 구문 사용 가능
      with open("파일 이름", "접근 모드") as my_file:
      	...
    • directory 관련 모듈
      • pathlib: path를 객체로 다룸, os 별로 path가 조금씩 다른데 통일해주는 장점
      • shutil: 소스파일 이동
    • pickle
      • 파이썬의 객체를 영속ㅘ하는 built-in 객체
      • 데이터, object, 인스턴스 등 실행중 정보를 저장
      • dump: 저장, load: 불러오기
  • Log Handling

    • logging

      • 프로그램이 실행되는 동안 일어나는 정보를 기록을 남기기
      • 기록된 로그를 분석하여 의미있는 결과를 도출 할 수 있음
    • logging 모듈

      • python의 기본 log 관리 모듈
    • logging level

    • 설정 방법

      • configparser
        • 프로그램의 실행 설정을 file에 저장
      • argparser
        • console 창에서 프로그램 실행시 setting 정보를 저장



5-2 Python Data Handling

  • CSV (Comma Separate Value)

    • 필드를 쉼표로 구분한 텍스트 파일
    • 엑셀 양식의 데이터를 프로그램에 상관없이 쓰기 위한 데이터 형식
  • 파이썬 CSV 객체

    import csv
    reader = csv.reader(f, delimiter=',', quotechar='"', quoting=csv.QUOTED_ALL)

    ref. https://docs.python.org/ko/3.8/library/csv.html

  • Web

    • 우리가 늘 쓰는 인터넷 공간의 정식 명칭 (WWW 줄여서 Web)

    • 동작 과정

    • HTML (Hyper Text Markup Language)

      • 웹 상의 정보를 구조적으로 표현하기 위한 언어
      • 제목, 단락, 링크 등 요소 표시를 위해 Tag 사용
  • 정규식 (regular expression)

    • 복잡한 문자열 패턴을 정의 (문자 표현 공식)
    • 특정한 규칙을 가진 문자열의 집합을 추출
    • http://www.regexr.com/ 로 연습하자!
    • 파이썬에서 re 모듈로 사용
  • XML

    • 데이터의 구조와 의미를 설명하는 TAG를 사용하여 표시하는 언어
    • HTML과 문법이 비슷
    • 컴퓨터간에 정보를 주고받기 매우 유용한 저장 방식
    • BeautifulSoup: HTML, XML등 Markup 언어 Scraping을 위한 대표적인 도구
  • JSON (JavaScript Object Notation)

    • JS의 데이터 객체 표현 방식

    • 간결성으로 이해하기 쉬움

    • 데이터의 용량이 적고, code로의 전환이 쉬움

      {
      	"color": "red",
      	"name": "john",
      	"number": 1
      }



6. Numpy

  • Numpy

    • 파이썬 고성능 과학 계산용 패키지
    • Matrix와 Vector와 같은 Array 연산의 사실상 표준
    • 특징
      • 일반 List에 비해 빠르고, 메모리 효율적
      • 반복문 없이 데이터 배열에 대한 처리 지원
      • 선형대수와 관련된 다양한 기능을 제공
  • ndarray

    • 배열

    • 하나의 데이터 type만 배열에 넣을 수 있음

    • 리스트와 구조 비교

      ref. https://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/

    • 생성

      import numpy as np
      
      test_array = np.array([1, 2, 3], int)
      test_array  # array([1, 2, 3])
      
      print(test_array.dtype)  # Array 전체의 데이터 Type을 반환
      print(test_array.shape)  # Array의 shape를 반환
      print(test_array.nbytes)  # Array의 메모리 크기를 반환
    • handling shape

      • reshape: array의 shape의 크기를 변경함, element의 갯수는 동일
      • flatten: 다차원 array를 1차원 array으로 변환
    • indexing & slicing

      • indexing: 이차원 배열에서 [0, 0] 표기법을 제공

      • slicing: list와 달리 행과 열 부분을 나눠서 slicing 가능

        test = np.array([[1, 2], [3, 4]], int)
        test[0][0]  # 1
        test[0, 0]  # 1
        
        test = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]], int)
        test[:,2:]  # 전체 row의 2열 이상
        test[1, 1:3]  # 1 row의 1열 ~ 2열
        test[1:3]  # 1 row ~ 2 row의 전체

        ref. https://www.slideshare.net/PyData/introduction-to-numpy

  • function

    • arrange: array의 범위를 지정하여, 값의 list를 생성하는 명령어
    • zeros: 0으로 가득찬 ndarray 생성
    • ones: 1로 가득찬 ndarray 생성
    • empty: shape만 주어지고 비어있는 ndarray 생성
    • something_like: 기존 ndarray의 shape 크기 만큼 1, 0 또는 empty array를 반환
    • identity: 단위 행렬을 생성함
    • eye: 대각선이 1인 행렬, k값 = 시작 index
    • diag: 대각 행렬의 값을 추출함
    • operation
      • axis: 모든 operation function을 실행할 때 기준이 되는 dimension 축

      • sum, mean, std 등 다양한 수학 연산자를 제공함

    • concatenate: array를 합치는 함수
    • array operations
  • Comparisons

    • all: 데이터 전부가 조건에 만족하는지 반환

    • any: 데이터 일부가 조건에 만족하는지 반환

    • where

      np.where( 조건, True일 때 값, False일 때 값)
    • argmax & argmin: array내 최대값 또는 최소값의 index를 반환

    • boolean index: 특정 조건에 따른 값을 배열 형태로 추출

    • fancy index: numpy는 array를 index value로 사용해서 값 추출

  • data i/o

    • loadtxt & savetxt



7-1 Pandas 1

  • Pandas

    • 구조화된 데이터의 처리를 지원하는 python 라이브러리
    • 데이터 처리 및 통계 분석을 위해 사용
  • Series

    • dataframe 중 하나의 column에 해당하는 데이터의 모음 object

    • values: data 리스트만 반환

    • index: index 리스트만 반환

  • Dataframe

    • data table 전체를 포함하는 object

    • loc: index 이름을 기준으로 indexing

    • iloc: index number를 기준으로 indexing

    • transpose

    • values: 값 출력

    • to_csv: csv로 변환

    • del: column 삭제

    • operations

      • 사칙 연산 지원 (겹치는 index가 없을 경우 NaN 값으로 반환)

    • apply: map과 달리, series 전체(column)에 해당 함수를 적용

    • describe: Numeric type 데이터의 요약 정보를 보여줌

    • unique: series data의 유일한 값을 list로 반환



7-2 Pandas 2

  • Group by 1
    • sql group by 명령어와 같음

    • split → apply → combine 과정을 거쳐 연산

    • 한 개 이상의 column을 묶을 수 있음

    • unstack: group으로 묶여진 데이터를 matrix 형태로 전환해줌

    • swaplevel: index level을 변경할 수 있음

    • operations: index level을 기준으로 기본 연산 수행 가능

  • Group by 2
    • grouped: group by에 의해 split된 상태를 추출 가능
    • aggregation: 요약된 통계정보를 추출
    • transformation: 해당 정보를 변환
    • filtration: 특정 정보를 제거하여 보여주는 필터링 기능
profile
함께 자라기

0개의 댓글