[머신러닝을 위한 파이썬 한 조각] - CH.2 파이썬 (Python)

Jeonghwan Kim·2022년 7월 3일
0
post-thumbnail

CH.2 파이썬 (Python)

  • 파이썬 데이터 타입
    • 리스트
      • 양수 인덱스와 음수 인덱스(역순) 존재
      • 슬라이싱
      • 빈 리스트 생성 후 append로 원소 추가 가능
    • 튜플
      • 리스트와 유사하지만 ()을 사용하고 원소를 변경할 수 없음
    • 딕셔너리
      • 입력한 순서대로 데이터가 들어가는 것이 아니므로 주의
      • score.keys(), score.values(), score.items()로 값을 얻을 수 있음
    • string
      • split(): 문자열을 분리하여 list로 반환
  • Useful function
    • type(): 입력 data의 데이터타입을 알려주는 함수
    • len(): 데이터의 길이를 알려주는 함수
    • size(): 모든 원소의 개수를 알려주는 함수
    • list(): 입력 data를 리스트로 만들어 리턴하는 함수
    • str(): 입력되는 data를 문자열로 변환하여 리턴하는 함수
    • int(): 문자열 형태의 숫자를 정수 형태로 리턴하는 함수
  • 조건문
    • if: 들여쓰기(indentation) 중요
  • 반복문
    • list comprehension: 리스트의 [] 안에 for 루프를 사용하여 반복적으로 표현식을 실행
  • 함수
    • 한 개 이상의 return 값 반환 가능
    • default parameter: 함수의 입력 파라미터에 기본 값을 지정하는 것으로 파라미터에 명시적인 값이 전달되지 않으면 기본값을 사용
    • mutable parameter: 입력 파라미터로 들어간 변수의 원본 값을 함수 내에서 바꿀 수 있는 것
      • list, dictionary, numpy 등
    • immutable parameter: 입력 파라미터로 들어간 변수의 원본 값이 함수 내에서 바뀌지 않는 데이터 타입
      • 숫자, 문자, tuple 등
  • lambda 함수
    • 함수를 만들 때 def를 사용하지 않고 한 줄 형태로 함수를 작성하는 것
    • 머신러닝에서 수치 미분과 활성화 함수 등을 수학의 f(x), f(x,y)로 나타낼 때 사용
      f = lambda x : x+100
      # f(x) = x + 100 과 동일
  • 클래스
    • def init 필수, 생성자 역할을 수행하고 인스턴스가 만들어 질 때 한번만 호출됨
    • 클래스 메서드의 첫번째 파라미터로 ‘자신의 인스턴스'를 나타내는 self를 반드시 기술해야함
    • class 변수: 메서드 밖에 존재하는 변수, 초기화를 시켜주는 변수, 해당 클래스로 생성된 모든 인스턴스가 공통으로 사용하는 변수
      • Person class로 생성된 모든 instance(obj1, obj2)는 count = 0을 공유함
    • 인스턴스 변수: 각 객체 인스턴스마다 별도로 존재, 메서드 안에서 사용되면서 “self.변수명"처럼 사용됨
    • 정적 메서드: self 파라미터를 갖기 않고 인스턴스 변수에 엑세스 할 수 없음, 객체 필드와 독립적이지만 로직상 클래스네에 포함되는 메서드에 사용됨, @staticmethod로 표시
    • class method: 메서드 앞에 @classmethod를 표시하고, self대신 cls를 파라미터로 받음
    • 인스턴스 데이터를 액세스 할 필요가 없는 경우에, 클래스 변수를 액세스할 필요가 있을 때는 클래스 메서드를, 이를 액세스할 필요가 없을 때는 정적 메서드를 사용함
    • private 메서드, 변수: __로 시작하면 private으로, 외부에서 직접 접근이 불가능함
    • 외부함수와 class method name이 같은 경우, self를 붙이지 않으면 동일한 이름의 외부 함수 호출됨
    • exception
      • try… except 문을 사용, try 블록에서 에러 발생 시 except 문으로 이동하여 예외 처리 수행
      • exception을 무시하려면 pass문을 사용하거나 개발자가 에러를 던지기 위해 raise문을 사용
      • try 문은 finally문을 가질 수 있고, try블럭이 정상적으로 실행되든 에러가 발생하든 항상 마지막에 실행됨
    • with 구문
      • 파일이나 세션을 사용하고 자동으로 리소스를 close시켜줌

0개의 댓글