본문 바로가기
Etc/Data Science

파이썬을 통한 데이터 사이언스_03

by happy coding! 2018. 8. 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()

반응형

댓글