ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬을 통한 데이터 사이언스_03
    Study/Data Science 2018. 8. 20. 20:20
    반응형

    facebook Innovation Lab Class

    파이썬을 통한 데이터 사이언스 입문 과정 3일차







     올바른 자료 구조 선택하기


    튜플

    리스트

    셋 


    - 리스트 데이터를 셋으로 변환 시 성능 차이 확인 -> %time 매직 명령어로 시간 측정! (Set이 훨씬 빠름)


    딕셔너리


    - 리스트에서 딕셔너리 만들기


    seq = ["alpha", "bravo", "charlie", "delta"]

    dict(enumerate(seq))


    - 클래스 생성자를 이용하여 만들기


    zip : 파이썬에서 두 개의 시퀀스를 결합해주는 함수




    ● 리스트 컴프리헨션(comprehension)으로 리스트 이해하기


    - 리스트 내포 (컴프리헨션)


    - 컬렉션을 리스트로 변환하는 형식


    - 예) myList - range(10)


    [x for x in myList if x >= 0]     # 음수가 아닌 항목만 추린다




    ● 카운터로 세기


    - Counter(카운터) 컬렉션




    ● 파일 다루기


    - with 문을 사용하여 파일 열기

    - 구문이 종료되면 자동으로 파일을 닫음(close)


    with open(name, mode="r") as f:

    <파일을 읽는다>


    - 데이터 읽어올 때


    f.read()            # 모든 데이터를 문자열이나 바이너리 형태로 읽음

    f.read(n)           # 첫 번째 n개의 바이트를 문자열이나 바이너리 형태로 읽음

    f.readline()        # 다음 줄(line)을 문자열로 읽음

    f.readlines()       # 모든 줄을 문자열 리스트로 읽음




    ● 웹에 접근하기 (1)


    - 웹에서 데이터 내려받기

    - urlopen 함수 사용해 URL 열기 -> URL 핸들 획득 -> 읽기 전용 함수 사용

    - urllib.request 모듈

    - 웹에서 데이터를 내려 받는 함수 제공


    import urllib.request

    try:

    with urllib.request.urlopen("http://www.networksciencelab.com") as doc:

    html = doc.read()

    # 성공적으로 URL 을 읽었다면 접속이 자동으로 종료됨

    except:

    print("Could not open %s" % doc, file=sys.err)


    # 파일을 읽었다고 거짓말을 하면 안된다

    # 여기서 오류 핸들러를 실행




    ● 웹에 접근하기 (2)


    - urllib.parse 모듈

    - URL 을 파싱하고 역파싱하는 유용한 도구 제공

    - URL 을 6개의 아이템으로 구성된 튜플로 분리


    1. 스키마(http)

    2. 네트워크 주소

    3. 파일 시스템 경로

    4. 파라미터

    5. 쿼리

    6. 프래그먼트




    ● 정규 표현식으로 패턴 매칭하기


    - 정규 표현식 언어


     기본 연산자

     

     .

    개행문자를 제외한 모든 문자 

    a

    문자 a 

    ab 

    문자열 ab 

    x|y 

    x나 y 

    \y 

    ^+{}[]\?* 같은 특수문자 y를 이스케이프


    - re 모듈로 검색, 분리, 교체

    - 부분 문자열을 자르고 매칭하고 검색, 분리, 교체(치환)하기 위해 필요한 모든 함수 제공

    - match()

    - search()




    ● 파일과 기타 스트링 다루기


    - 글로빙(globbing)

    - 정규 표현식으로 쓰인 파일명이나 와일드카드를 매칭하는 과정

    - glob 모듈 : 와일드카드 매칭에 사용되는 동명의 함수를 제공




    ● pickle로 데이터 압축하기


    - pickle 모듈 

    - 직렬화(serialization)를 수행




    ● HTML 파일 처리


    - BeautifulSoup 객체 생성하기 (html 태그를 읽을 수 있는 일종의 파서 역할)


    - soup.get_text() 함수로 텍스트 출력 

      : 모든 태그를 제거하고 텍스트 부분만 반환




    ● CSV 파일 다루기


    - CSV  : 테이블형이나 테이블 형에 가까운 데이터를 저장하고 옮김


    - CSV 모듈 

    - CSV 리더(reader) : for 루프에서 사용할 수 있는 이터레이터 인터페이스를 제공

    - CSV 라이터(writer) : writerow()와 writerows() 함수를 제공


    - 실습 : statistics 모듈을 사용해서 나이 변수의 평균 구하기




    ● JSON 파일 읽기


    - JSON : 누가 사용하나?

    - Twitter, Facebook 이나 Yahoo! 날씨 같은 유명한 웹 사이트는 데이터 교환 포맷으로 JSON을 사용한 API를 제공

    - JSON 이 지원하는 데이터 타입

    - 기본 데이터 타입 : 문자열, 숫자, 참(true), 거짓(false), null

    - 배열

    - 객체

    - 배열이나 객체, 기본 데이터 타입으로 구성된 어떤 재귀적인 조합




    ● JSON 파일 읽기


    - dump()

    - load()

    반응형
Designed by Tistory.