오늘은 Python 데이터 분석시에 사용하는 국민 라이브러리
1. matplotlib

2. seaborn

이 두가지에 대해서 배웠습니다. 사실 사전교육에서도 어느정도 맛을 봤고, ChatGPT 한테 시각화해달라고 Python 코드 짜달라고 하면 주구장창 출력해주는게 요 두 라이브러리 였기 때문에 어느정도 익숙하긴 했거든요.
그치만, 무작정 시켜서 출력된 코드 냅다 같다 붙이던 때랑 하나하나 파라미터와 메서드가 어떤 의미를 가지는 지 분석하는 것. 그리고 직접 타이핑하면서 의미를 다시금 생각해보는 건 좀 다르더라구요.
-matplotlib : 사용자가 원하는 대로 세밀하게 조정 및 커스텀이 가능. 그렇지만, 그만큼 타이핑해야 할 코드의 양이 많고 여러 그래프 및 여러 옵션을 추가하게되면 상당히 비효율적일 수 있음. 시각화 활용시에는, 그 중 pyplot 이라는 모듈을 불러와줍니다.
import matplotlib.pyplot as plt
-seaborn : 간단하게 몇 줄의 코드만으로도, 복잡하고 다양한 그래프들을 손쉽게 만들어낼 수 있음. 단점은, 원하는 대로 그래프를 자유롭게 조정하는 것이 힘듦. sns 로 명명하여 불러와줍니다.
import seaborn as sns
이 두 라이브러리의 차이를 사실 몰랐어요. 그냥 시각화 해주니까 해주는갑다 싶었지.. 이제 파이썬 기초 -> 데이터 전처리 -> 데이터 시각화까지 어느정도 배웠으니까 이번주 평일동안 분석할 데이터 하나 찾아가지고, 주말동안 야무지게 뜯어봐야죠. 배운거 안 쓰면 결국 다 까먹는다니까요..
plt.plot() 내에는 그렇게 많은 marker가 있는 지 몰랐고, 개인적으로는 plt.xticks() 랑 plt.yticks() 로 축의 글씨 크기를 지정해 주는 것. axhline(), axvline() 으로 특정 x값 또는 y값에 강조를 해줄 수 있다는 게 신기했습니다. mean, max, min, 1Q, 3Q 등 중요한 통계값들을 표시해 줄 때 요긴하게 쓰겠더라구요. subplot() 을 활용하면 한 화면에 여러 그래프를 표시해줄 수 있었습니다.
plt.plot(df['Colname'], df['Colname'], marker='' ...) # x축, y축 지정
plt.axhline(표시할 y축위치, ...)
plt.axvline(표시할 x축위치, ...)
+ plt.axvline() 으로 x 축에 하이라이트 선? 을 세로로 하나 그어주는데, 실제로 넣어준 값이랑 x 값이 일치하지가 않는 거에요. 이게 도대체 왜 그렇지? 하고 봤는데 해당 데이터프레임에서 추출한 x값들이 문자열이라 그랬더라고 하더라구요. (감사합니다 강사님) int type 이면 그렇게 안 맞을 이유가 없었는데 ㅋㅋㅋ 그래서 셀위에 다시 확인해보니까 추출할 때 str 로 추출했던 것을 확인했습니다. 질문 칭찬 받아서 괜히 기분 좋은거 있죠~
그리고 seaborn 라이브러리에서는 histplot(), kdeplot(), boxplot(), distplot(), jointplot() 에 대해서 배웠습니다. 아니, 다시 살펴보니까 pariplot(), barplot(), countplot(), heatmap() 까지 배웠네요. 오늘 참 많이도 배웠다..
histplot 과 kdeplot 의 가장 큰 차이점은 시각화의 일관성입니다. histplot 은 hue 라는 파라미터 값에 따라서 간격이 아주 널뛰는데, kdeplot은 상대적으로 그게 덜 하다는 점!
boxplot은 평균과 신뢰구간을 표시해준다는 점. distplot에서는 histplot, kdeplot 둘 다 표시가 가능하다는 점.
pariplot() 은 여러 변수를 한 눈에 비교가 가능했구요.
countplot()이 이게 진짜 상당했습니다. matplotlib 로 구현하면 세줄은 써야하는 코드를, 그저 단 한줄로 끝내버리는 게 효율성의 극치라고 할까요? value_counts() 이렇게 덕지덕지 붙여서 할 수도 있지만, 그렇지 않게 해줘서 감사한 놈이었습니다.
결국, IT 기술도 데이터 분석도 사람이 필요로 해서 만들어졌다는 것을 요즘 들어 많이 느낍니다. 기술을 배우는 이유를 항상 생각하고 있어야, 시간 낭비를 줄일 수 있을 것 같네요. 내가 구현하고자 하는 것이 무엇인지, 그걸 위해서 어떤 것이 필요한 지 연구하는 과정에서 자연스럽게 기술이 습득되는 것 같습니다. 남은 시간도 파이팅!
<4월 목표>
-정보처리기사 필기 개념 1회독, 모의고사 10회분 풀기
-Java 코딩테스트 매일 2문제씩 보기
-KT aivle school 배운 거 그날 복습하기
-프로젝트에서 최소 한가지 이상 배운 거 적용해보기
<03.31>
-matplotlib, seaborn 라이브러리 학습
'Bootcamp > KT aivle school' 카테고리의 다른 글
04.02 kt 에이블 스쿨 6일차 이변량 분석 (0) | 2025.04.03 |
---|---|
04.01 kt 에이블스쿨 5일차 pandas, seaborn 응용 | Java 코딩테스트 입문 (0) | 2025.04.01 |
KT 에이블 스쿨 3일차 교육 후기 - Pandas (0) | 2025.03.29 |
03/27 KT 에이블 스쿨 2일차 교육 후기 (0) | 2025.03.28 |
03/26 KT aivle school 1일차 교육 후기 (0) | 2025.03.27 |