2024. 1. 12. 19:05ㆍ부트캠프
EDA 실시간 강의를 열심히 들었다.
저번 2학기때 Business analytics 수업에서 진행했던 프로젝트가 있어 EDA가 낯설지는 않았다. 하지만 시각화를 하는 코딩 자체는 쉽지만 막상 작성하려고 하면 어려움이 있었고, 내가 보고싶은 그래프를 만드는 능력이 조금 부족했던거 같다. 이번 강의를 통해서 이러한 부분에서 발전했으면 좋겠다.
Numpy
2005년에 만들어졌으며, 100% 오픈소스입니다.
최적화된 C code로 구현되어 있어 엄청나게 좋은 성능을 보입니다.
파이썬과 다르게 수치 연산의 안정성이 보장되어 있습니다. (numerical stable)
N차원 실수값 연산에 최적화되어 있습니다. == N개의 실수로 이루어진 벡터 연산에 최적
화되어 있습니다.
Numpy를 사용해야 하는 이유
1. 데이터는 벡터로 표현됩니다. 데이터 분석이란 벡터 연산입니다. 그러므로 벡터 연산을 잘
해야 데이터 분석을 잘할 수 있습니다.
2. (native) 파이썬은 수치 연산에 매우 약합니다. 실수값 연산에 오류가 생기면 (numerical
error) 원하는 결과를 얻지 못할 수 있습니다. 많은 실수 연산이 요구되는 머신러닝에서 성
능 저하로 이어질 수 있습니다.
3. numpy는 벡터 연산을 빠르게 처리하는 것에 최적화되어 있습니다. 파이썬 리스트로 구현
했을 때보다 훨씬 더 높은 속도를 보여줍니다.
numpy array는 파이썬 리스트와 비슷한 구조입니다. 하지만, 세부적인 특징이 많이 다릅니
다.
< 리스트와 다른 점>
1. 선언한 이후에 크기 변경이 불가능합니다.
2. 모든 원소의 데이터 타입이 동일해야 합니다. (homogeneous array)
< 리스트와 같은 점>
1. indexing으로 원소를 접근할 수 있습니다.
2. 생성 후 assignment operator를 이용해서 원소의 update가 가능합니다.
Pandas
2008년에 만들어졌으며, 2009년에 100% 오픈소스가 되었습니다.
정형 데이터를 효율적으로 표현할 수 있는 DataFrame 형태로 모든 데이터를 표현합니다.
다양한 데이터 조작 기능을 제공합니다.
e.g. indexing(=search), filtering, reshaping, concatenation, reading/writing, ...
벡터 연산에 최적화되어 있습니다. → Numpy와 연관성이 있다!
Pandas를 사용해야 하는 이유
1. 대부분의 정제된 데이터들은 테이블 형태로 표현됩니다. 이런 테이블 형태의 데이터를 분석
하기에 최적의 라이브러리입니다.
2. numpy처럼 정형화된 데이터 연산에 최적화 되어 있습니다. 성능이 매우 뛰어납니다!
3. 다양한 정형 데이터를 통합 관리할 수 있습니다. json, html, csv, xlsx, hdf5, sql, ... 모
두 DataFrame으로 통일해서 표현될 수 있다.
4. 엑셀에서 제공하는 연산 기능을 거의 다 제공합니다. 편의성이 좋다!
Matplotlib
파이썬 오픈소스 라이브러리 중에 가장 널리 사용되는 시각화 라이브러리입니다.
2002년부터 만들어졌으며, MATLAB의 기능들을 파이썬으로 가져오는 컨셉으로 시작되었습니
다.
각종 논문에서 figure를 그릴 때, 사용될 만큼 깔끔하게 그래프를 그려주는 것으로 유명합니다.
figure 라는 도화지에 여러가지 component를 얹어서 그래프를 완성하는 컨셉으로 구현됩니
다.
크게 pyplot 을 이용하여 구현하는 방법과 OOP-style 를 이용하여 구현하는 두 가지 방법이 있
습니다.
빠르게 적당한 퀄리티의 그래프를 그린다면 pyplot을, 디테일하게 이것저것 표현을 한다면
OOP-style로 구현하는 것을 추천합니다.
Seaborn
2012년에 만들어졌으며, matplotlib을 더 편하게 사용할 수 있도록 만든 라이브러리입니다.
matplotlib이 MATLAB을 표방하여 디자인된 것과 다르게, seaborn은 numpy, pandas 같은
파이썬 라이브러리들을 편하게 시각화하는 것을 중점으로 디자인된 라이브러리입니다.
특히, DataFrame을 직접적으로 지원하기 때문에 훨씬 편리하게 데이터를 시각화할 수 있습니
다.
그리고 matplotlib 위에 만들어져서, matplotlib에 있는 개념들을 확장해서 사용할 수 있습니다.
다양한 기본 plot들이 있어서 빠르게 통계 분석을 하기에 편리합니다. → EDA
(강사님 노션 정리가 너무 깔끔하다..)
pandas의 피벗테이블을 이용해 원하는 데이터만 추출도 해보았고, 시각화도 하는 경험이 앞으로 EDA 프로젝트를 진행할 때 많은 도움이 될거같다.
실시간 강의중 해보았던 EDA


