Python 기초 - 자료형(Data type)

Kyung Jae, Cheong·2022년 8월 30일
1

Python을 다루는데 있어 알아둬야할 기본적인 개념들을 정리하는 시리즈

Python이란?

  • 1989년 네덜란드의 귀도 반 로섬(Guiso van Rossum)이 크리스마스 휴가 중 재미로 개발한 프로그래밍 언어
  • 그리스 신화에 나오는 큰 뱀을 뜻한다고함..
  • 많은 기업에서 파이썬을 이용해 소프트웨어를 개발하고 있음.

왜 Python입니까?

  • 매년 최고의 프로그래밍 언어로 선정되고 있음.
  • 배우기 쉽고, 간결하고, 코딩이 편리함.
  • 다른 프로그래밍 언어와의 호환성이 뛰어남
  • 텍스트데이터를 다루기 편함
  • 들여쓰기 문법으로 인해 읽고 쓰기가 쉬운편
  • 다양한 데이터분석 모듈이 존재함(예를들어 Scikit-learn 등..)
  • 딥러닝의 기반(TenserFlow, Keras, Pytorch)

Python의 자료형(Data type)

1. Number, String, Boolean

1-1. 숫자형(Number)

  • 정수(integer)와 실수(float)를 주로 사용함.
    • a = 123
      • 정수로 변환 a = int(a)
    • a = 123.0
      • 실수로 변환 a = flaot(a)
    숫자형의 연산자
    + : 더하기
    - : 빼기
    * : 곱하기
    / : 나누기
    ** : 제곱
    // : 몫
    % : 나머지

1-2. 문자열(String)

  • 문자들이 연속적으로 저장된 형태.
  • 주로 큰따옴표 "나 작은따옴표 '로 정의함.
    • 문자열로 변환 a = str(a)
  • 인덱싱(요소불러오기), 슬라이싱(한꺼번에불러오기) 가능함.
    • 인덱싱,슬라이싱할때
      • 앞에서부터 0,1,2,0,1,2,\cdots
      • 뒤에서부터 1,2,3,-1,-2,-3,\cdots
    다양한 문자열 관련 명령어
    대/소문자
    a.upper() #대문자화
    a.lower() #소문자화
    문자열제거
    a.strip()
    a.lstrip() #왼쪽
    a.rstrip() #오른쪽
    문자열치환
    a.replace('input','output') #input을 output으로 변환
    문자열분리
    a.split('@') # @를 기준으로 분리
    문자열검색
    a.find('@') # @가 먼저나온 위치를 찾음
    a.count('@') # @가 나온 횟수
    len(a) #문자열길이

1-3. 불리언(Boolean)

  • 참,거짓으로 나타내는 자료형태

  • True or 1 : 0이 아닌 값이 존재하는 경우

  • 거짓 False or 0 : 0이거나 존재하지 않는 경우

    조건문 연산자들
    
    비교연산자
    < : 작음
    <= : 작거나 같음
    > : 큼
    >= : 크거나 같음
    == : 같음
    != : 같지 않음
    
    논리연산자
    and : 둘 다 True면 True (교집합)
    & : 둘 다 True면 True (교집합)
    or : 둘 중 하나만 True면 True (합집합)
    | : 둘 중 하나만 True면 True (합집합)
    not : False면 True (여집합)
    
    특수 논리연산자
    A in B : B안에 A가 있으면 True
    A not in B : B안에 A가 없으면 True

2. List, Tuple

2-1. 리스트(List)

  • 숫자형,문자열,불리언을 하나로 묶어서 관리
  • 다른 list를 묶어서 다중리스트를 형성할 수도 있음
  • 대괄호[]로 정의함
    리스트 예시
    a = [1, 2]
    b = [1, 2, [3, 4]] #이중리스트
    c = [1, 2, [3, 4, [5, 6]]] #삼중리스트
  • 인덱싱과 슬라이싱이 가능함
    삼중리스트의 인덱싱
    c = [1, 2, [3, 4, [5, 6]]]
    c[2][2][0]
    5
  • 수치적 연산은 불가함(더하면 뒤에 붙여지는 방식)

2-2. 튜플(Tuple)

  • 리스트와 비슷하지만, 요소의 값을 변경하는 것이 불가능한 자료형
  • 다중 튜플을 형성할수 있음
  • 소괄호()나 콤마,로 정의
    튜플 예시
    a = (1, 2)
    a = 1, 2
  • 인덱싱과 슬라이싱이 가능
  • 요소값을 못바꾸기 때문에 값이 바뀌지 않거나 변경되지 않도록 할때 사용함
  • 주로 결과물의 형태로 튜플이 자주 사용됨

3. Dictionary, Set

3-1. 딕셔너리(Dictionary)

  • 키(key)와 값(value)의 대응관계로 정의되는 자료형

  • 순서가 없는 자료형임(인덱싱,슬라이싱 불가)

  • 중괄호{}로 정의

    딕셔너리 예시
    a = {'USD' : 1100, 'JPY' : 900}
    
    a['USD']
    1100
    
    a.keys()
    dict_keys(['USD','JPY'])
    
    a.values()
    dict_values(['1100','900'])
  • Key는 고유값으로 수정이 불가함

3-2. 집합(Set)

  • 수학의 집합처럼 사용되는 자료형
  • 순서가 없고, 중복을 허용하지 않음
  • set()함수로 정의함
    세트 예시
    s = set([1,2,3])
    s = set((1,2,3))
  • 교집합, 합집합, 차집합 계산이 가능함

4. ndarray, Series, DataFrame

4-1. ndarray

  • 모듈 Numpy의 배열을 나타내는 자료형
  • 순서를 가짐(인덱싱,슬라이싱가능)
  • 리스트와다르게 수치적인 연산이 가능함
  • 벡터와 행렬을 표현할 수 있음

4-2. Series, DataFrame

  • 모듈 Pandas의 고성능 자료형태
  • Series(벡터)가 column(열)형태로 쌓이면 DataFrame(행렬)
  • 결측치(NaN)의 처리가 가능함.
profile
Machine Learning Engineer ( AI Engineer )

0개의 댓글