bluesky9***
2023-05-13

데이터 분석을 배우는 가장 완벽한 방법 파이썬 라이브러리 사용법부터 실제 데이터를 활용한 실습까지
나름 자극적인 문구와 함꼐 시작되는 CHAPTER 1 에서는 데이터 분석에 파이썬을 싸용하는 이유(스크립트 언어 - 작은 푸로그램이나 업무 자동화 스크립트를 빠르고 간단하게 만들 수 있게 도와줌)에 대해서 얘기하며 시작된다.
> 접착제처럼 쓰는 파이썬 - 타 언어와의 코드 통합이 용이
> 한 가지 언어만 사용 - 하나의 언어로 개발이 충분하여 범용성이 띄어남
그리고 이 책에서 다루게 될 기본적인 부분에 대해 정리해주는데, 특히 파이썬 기초 라이브러리와 쥬피터노트북 그리고 내장 자료 구조 및 함수. 파일 등에 대해 친절히 정리해주고 있다
> 넘파이 - Numericla Python - 파이썬 산술 계산의 주출돌 같은 라이브러리
> 판다스 - pandas - 구조화된 데이터나 표 ㅎ형식의 데이터를 직관적이고 유연하게 활용 가능
표 형태의 행과 열 이름을 가지는 DataFrame 과 1차원 배열 객체인 Series 가 있다
> 멧플롯립 - 2차원 데이터 시각화 생성
> IPython - 더 나은 대화형 파이썬 인터프리터 제공
> 주피터 - IPython 팀은 언어에 상관없이 대화형 컴퓨팅 도구를 설계할 수 있는 주피터 프로젝트 발표 > IPython 웹 노트북은 주피터 노트북으로 이름을 바꿔 40개가 넘는 프로그램 언어를 지원한다
> 사이파이 - 과학 계산 영역의 여러 기분 문제를 다루는 패키지
> 사이킷런 - 파이썬 개발자를 위한 범용 머신러닝 도구
> statsmodels - 통계분석 패키지
파이썬은 인터프리트 - 한 번에 하나의 명령어만 실행 - 언어
2장에서 IPython 과 주피터 노트북 활용에 실행 및 활용에 대해 안내해준다
파이썬은 가독성, 명료성, 명백함을 강조하는 언어. '실행 가능한 의사코드'라 표현하기도 함
들여쓰기 > 다른 많은 언어와는 다르게 중괄호 대신 공백 문자(탭 or 스페이스)를 사용해 코드를 구조화 한다.
팁! 기본 드려쓰기를 스페이스 4칸 > 텍스트 편집기는 탭 너비를 스페이스로 치환
모든 것은 객체
파이썬 언어의 중요한 특징 중 하나는 객체 모델의 일관성이다. 모든 숫자, 문자열, 자룍구조, 함수, 클래스, 모듈 등은 파이썬 인터프리터에서 파이썬 객체라 부르는 어떤 상자 안에 저장된다. 각 객제츠는 연관된 자료형과 내부 데이터를 갖는다. 실제로 이 특징은 심지어 함수마저도 하나의 객체로 간주함으로써 파이썬을 매우 유연한 언어로 만든다.
함수는 괄호와 0개 이상의 인수를 전달해서 호출할 수 있다. 반환되는 값은 선택적으로 변수에 대입할 수 있다. 파이썬의 거의 모든 객체는 함수를 포함하고 있는데 이를 메서드라 부르며, 메서드를 통해 객체의 내부 데이터에 접근할 수 있다.
동적 참조와 강한 타입
속성과 메서드
파이썬에서 객체는 일반적으로 그 객체 내부에 저장된 다른 파이썬 객체인 '속성;과 그 객체의 내부 데이터에 접근할 수 있는 함수인 '메서드'를 갖는다. 속서과 메서드는 obj.attribute_name 문법으로 접근할 수 있다.
덕 타이핑
객체의 자료형에는 관심이 없고 그 객체가 어떤 메서드나 행동을 지원하는지만 알고 싶은 경우가 있다. 이를 '덕 타이핑' 부른다. 어떤 개게가 이터레이프 프로토콜을 구현했다면 순회가 가능한 객체인지 검증할 수 있다, 대부분의 객체에는 __iter__ 라는 매직 메서드를 가지고 있는지 확인하면 된다.
모듈 import
파이썬에서 모듈은 파이썬 코드가 담긴 .py 파일이다. ex) from .. import
이항연산자
가변 객체와 불변 객체
리스트, 딕셔너리, 넘파이 배열 또는 사용자 정의 클래스 같은 대부분의 객체는 변경 가능하다. 즉, 객체나 값의 내용을 바꿀 수 있다. 단, 문자열이나 튜플은 변경 불가능하다. 즉, 내부 값은 변경할 수 없다.
스칼라 자료형
파이썬은 숫자 데이터와 문자열, 불리언 값 그리고 날짜와 시간을 다룰 수 있는 몇몇 내장 자료형을 제공한다. 이런 단일 값을 담는 타입을 스칼라 자료형이라고 부른다. 날짜와 시간을 다루는 방법은 표준 라이브러리의 datetime 모듈에서 제공하므로 이후에 설명한다.
for 문
for 문은 리스트나 튜플 같은 컬렉션이나 이터레이터를 순회한다. for 문의 기본 문법은 다음과 같다.
> for value in collection #여기서 value 변수를 사용할 수 있다
for 문은 break 예약어를 사용해서 빠져나갈 수 있으며, 가장 안 쪽에 있는 for 문만 빠져나가고 바깥쪽에 있는 for 문은 계속 실행된다.
while 문
while 문은 조건을 명시하고 해당 조건이 False가 되거나 break 문을 사용해서 명시적으로 반복이 끝날 때까지 블록 내의 코드를 수행한다
pass 는 파이썬에서 아무것도 하지 않음을 나타낸다. 혹은 아직 구현하지 않은 코드를 나중에 추가하기 위한 플레이스홀더로 활용하기도 한다. 블록 내에서 어떤 작업도 실행하지 않을 때 사용하며, 파이썬이 공백문자를 사용해 블록을 구분하는 경우에만 필요하다.
range
range 함수는 균일한 간격의 연속된 정수를 반환하는 이터레이터를 반환한다
딕셔너리
딕셔너리(dict)는 파이썬 내장 자료국조 중에서 가장 중요한 자료구조다. 딕셔너리는 키 - 값 쌍을 저장하며 키와 값은 모두 파이썬 객체다. 각 키는 값과 연관되어 특정 키가 주어지면 값을 편리하게 검색, 삽입, 수정 또는 삭제할 수 있다. 중괄호 {}를 사용해 콜론으로 구분된 키와 값을 둘러싸면 딕셔너리가 생성된다.
이상 CHAPTER 2~3 에서 주요한 내용에 대해 간략히 공부 겸 정리를 해보았다. 본격적으로 개발자의 길을 걷기 시작한지 3개월 여가 지나서인지 이제 좀 보이고 이해되는 부분들이 있어 나름 반가웠고, 왜 CHAPTER 1 에서 챕터 2~3을 왜 강조했는지 이해할 수 있었다.
CHAPTER 4 - Numpy / CHAPTER 5 - pandas 에 대한 설명이 이어졌으며 특히나 해당 챕터는 데이터 사이언스 과정 수강 중인지라 겹치는 부분이 많아 빠르게 진도를 나갈 수 있었다. 또 한 번 느꼈지만 pandas 는 활용도가 진짜 높은 것 같다!
CHAPTER 6 에서 데이터 로딩과 저장, 파일 형식 > CHAPTER 7 데이터 정제 및 준비 > CHAPTER 8 데이터 준비하기: 조인, 병합, 변형 > 9장 그래프와 시각화 > 10장 CHAPTER 데이터 집계와 그룹 연산 > 11장 시게열 > 12장 파이썬 모델링 라이브러리 > 13장 데이터 분석 예제 > 부록 으로 이어지는 구성이며, 챕터의 흐름만 보더라도 알겠지만 데이터 분석을 하는 과정에 따라 저리되어 있어
한 글자 한 글자 세세히 읽어도 당연히 좋겠지만 전체적인 흐름을 훑어본 후 실재 데이터를 트릿하면서 찾아보고, 참고하면 더 큰 효과를 발휘할 수 있을 것 같다는 생각을 했다. 물론 그럴거면 그냥 구글링을 하지라고 생각할 수 있지만 전반적인 큰 흐름을 함께 가져가면서 이해하고 문제를 분석하고 풀어나가는 것.
즉, 전체적인 숲을 보는 것과 그 상황상황에 대응/대처를 위해 나무 한그루 혹은 가지를 바라보며 데이터를 트릿하는 것은 큰 차이가 있을 것이라 생각되기에 이 책은 지금의 나에게 딱 필요하고, 또 큰 도움이 될 수 있는 책이 아닐까 생각된다.
처음 이 책을 받았을 때, 전문/기술서적이 대부분 그렇지만 그럼에도 불구하고 그 두께와 페이지 수에 압도될 수 밖에 없었다. 과연 이 책을 내가 읽을 수 있을까 하는 생각이 먼저 들 정도였으니.. 하지만 실재 쥬피터노트북을 활용하여 데이터를 만지고 있거나 트릿해보고자 도전 계획이 있으신 분이라면 생각보다 어렵지 않게 진도가 나갈 것이다.
너무나도 친절히 기초부터 쉬운 에제 그리고 그에 맞춘 설명까지 함께 하고 있으니 내가 당도한 문제를 풀고자 한다면 이 책은 큰 도움이 될 것이라 믿어 의심치 않는다. 뿐만 아니라 앞서 얘기한대로 CHAPTER 4부터는 데이터 트릿의 순서의 정석과 같은 흐름으로 책이 서술되어 있어 이 플로우에 맞춰 작업 혹은 실습을 해보아도 무방하리라 생각된다.
나와 같이 이제 막 개발 맛(?)을 느끼고 있는 초급 개발자들이라면, 그리고 파이썬과 쥬피터 노트북을 활용하여 데이터를 만지고 트릿하는데 관심이 있는 누구라도 이 책은 든든한 동반자가 되어 줄 것임에 분명하다. 왜냐하면 내가 몸소 부딪히고 맨 땅에 헤딩하면서 어째저째 겨우 만지고 있는 부분들이 이 책에 모조리 실려 있었기 때문이다. 워낙 분량이 많아 정독을 하기 어려울 수 있으나 케이스에 따라 찾아가며 따라간다면 그 또한 즐거운 시간이 되지 않을까 싶다.