전체 글

데이터 분석 및 시각화/데이터 시각화

[Python] Seaborn(stripplot, swarmplot, catplot, jointplot, pairplot, Pandas pivot table), Pandas Pivot table

stripplot strip plot은 카테고리마다의 scatter plot을 그립니다. 그리는 방식으론 jitter를 사용하는데 이 방식은 다른 축의 방향으로 랜덤하게 점을 찍어 겹치는 부분을 줄입니다. 이 방식은 box plot과 violin plot의 보완이 될 수 있습니다. 단 하나의 숫자형 column을 할당한 경우에는 각 점들이 다른 축의 방향으로 랜덤하게 "jittered'된 단일 변량에 대한 분포(univariate distribution)의 형태를 보여줍니다. tips = sns.load_dataset("tips") sns.stripplot(data = tips, x = 'total_bill') y축의 방향에 카테고리 변량을 추가했습니다. 각 카테고리에 해당하는 데이터들의 분포 형태를 비..

데이터 분석 및 시각화/데이터 시각화

[Python] Seaborn(barplot, boxplot, violinplot)

barplot x와 hue를 카테고리화해서 body_mass_g 값의 평균과 신뢰구간(confidence intervals)을 구해서 바 플롯으로 표현하고 있습니다. df = sns.load_dataset('penguins') sns.barplot(data = df, x = 'species', y = 'body_mass_g', hue = 'sex') box plot 박스-휘스커 플롯(Box-Whisker Plot) 혹은 간단히 박스플롯이라 부릅니다. 박스 플롯은 박스와 박스 바깥의 선(whisker)으로 이루어집니다. 박스는 실수 값 분포에서 1사분위수(Q1)와 3사분위수(Q3)를 뜻합니다. 이 3사분위수와 1사분위수의 차이(Q3 - Q1)를 IQR(Interquartile range)라고 합니다. 박스..

데이터 분석 및 시각화/데이터 시각화

[Python] Seaborn(style 세팅, 카운트 플롯, 히스토그램(displot))

Seaborn이란 Seaborn은 Matplotlib을 기반으로 다양한 색상 테마와 통계용 차트 등의 기능을 추가한 시각화 패키지입니다. 기본적인 시각화 기능은 Matplotlib 패키지에 의존하며 통계 기능은 Statsmodels 패키지에 의존합니다. 테마를 활용해서 스타일 적용하기 set_theme()는 global 범위의 테마를 적용해서 그래프를 쉽게 꾸밀 수 있습니다. style과 palette 키워드 인수를 활용해서 그 값을 설정합니다. style : darkgrid, whitegrid, dark, white, ticks, ... palette : pastel, husl, Spectral, flare, ... (참고) set_context()의 인수로 paper, notebook, talk, p..

데이터 분석 및 시각화/데이터 시각화

[Python] matplotlib - 차트

바 차트(bar chart) x 데이터가 카테고리 값인 경우에는 bar 명령과 barh 명령으로 바 차트(bar chart) 시각화를 할 수 있습니다. 가로 방향으로 바 차트를 그리려면 barh 명령을 사용합니다. 바 차트 작성시 주의점은 첫번째 인수인 left 가 x축에서 바(bar)의 왼쪽 변의 위치를 나타낸다는 점입니다. import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np y = [2,3,1] x = ['가','나','다'] plt.title("Bar Chart") plt.bar(x,y) plt.xlabel('가나다') plt.ylabel('빈도 수') plt.show() 각 bar 마다 색상을 적용할 수 있습니다...

데이터 분석 및 시각화/데이터 시각화

[Python] Matplotlib - 폰트 설정법

절차 폰트 다운로드 후 특정 경로 저장(예시로는 C:/python/font) 2. 아래 코드 실행(폰트 경로, 폰트 이름 변경 후 실행) import matplotlib.font_manager as font_manager import matplotlib as mpl # 폰트 파일 다운로드 받아서 경로 설정한 곳에 저장 font_dir = ['C:/python/font'] for font in font_manager.findSystemFonts(fontpaths=font_dir): print(mpl.font_manager.FontProperties(fname=font).get_name()) # 폰트명 확인 font_manager.fontManager.addfont(font) # 폰트 추가 #..

데이터 분석 및 시각화/데이터 시각화

[Python] Matplotlib - Figure, Axes, Axis, Artist

Figure Matplotlib는 data를 Figure(e.g. windows, Jupyter widgets, etc.)에 x-y 좌표의 그래프로 표시합니다(3차원은 x-y-z, 극좌표는 세타-r 등). 각각의 Figure는 하나 이상의 Axes를 갖습니다. 가장 간단하게 Figure, Axes 객체를 만드는 방법은 pyplot.subplots()을 사용하는 것입니다. 그 후 Axes.plot()를 활용하여 Axes에 데이터를 그립니다. fig, ax = plt.subplots() ax.plot([1,2,3,4], [1,4,2,3]); Figure는 전체 그림(그래프)을 의미하는 객체입니다. Figure 객체는 Axes, 특수 Artist 그룹(title, figure legends, colorbar,..

코딩테스트 스터디/이론

[이것이 코딩테스트다 with 파이썬] 3_구현(완전 탐색, 시뮬레이션)

구현 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정, 모든 범위의 코딩테스트 문제 유형을 포함하는 개념 Problem Thinking Solution 완전 탐색 모든 경우의 수를 주저 없이 다 계산하는 방법 시뮬레이션 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행하는 문제 구현 시 고려해야할 메모리 제약 사항 파이썬에서의 리스트 크기에 따른 메모리 사용량 데이터의 개수(리스트 길이) 메모리 사용량 1000 약 4KB 1,000,000 약 4MB 10,000,000 약 40MB 파이썬은 다른 언어에 비해서 구현상의 복잡함은 적은 편이지만 데이터 처리량이 많을 때는 메모리 제한을 고려해야한다. 리스트를 여러 개 선언하고, 그 중에서 크기가 1,000만 이상인 리스트가 있다면 메모리 용량 제한으로..

코딩테스트 스터디/이론

[이것이 코딩테스트다 with 파이썬] 2_그리디

그리디 알고리즘(Greedy) 어떤 문제가 있을 때 탐욕적으로 문제를 푸는 알고리즘. 현재 상황에서 지금 당장 좋은 것만 고르는 방법. 그리디 알고리즘은 매 순간 가장 좋아보이는 것을 선택하며, 현재 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 다만 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰(작은) 순서대로'와 같은 기준을 알게모르게 제시해준다. 예제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 돈이 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야할 돈이 N원일 때 거슬러줘야할 동전의 최소 개수를 구하라. 단 거슬러 줘야할 돈 N은 항상 10의 배수이다. 가장 큰 화폐 단위부터..

코딩테스트 스터디/이론

[이것이 코딩테스트다 with 파이썬] 1_복잡도

복잡도(complexcity) 알고리즘의 성능을 나타내는 척도 시간 복잡도(Time complexcity) : 특정한 크기의 입력에 대하여 알고리즘에 대하여 얼마나 오래 걸리는지 의미 공간 복잡도(Space complexcity) : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지 의미 보통 시간 복잡도와 공간 복잡도는 거래 관계(trade off)이다. 연산 횟수를 줄이는 대신 메모리를 더 소모하거나 더 많은 정보를 관리하면서 계산의 복잡도를 줄일 수 있다. 시간 복잡도(Time complexcity) 알고리즘 문제를 풀 때는 흔히 시간복잡도를 고려한다. 시간 복잡도를 표기할 때는 빅오(Big-O) 표기법을 사용한다. 빅오 표기법 간단 정의 : 빠르게 증가하는 항만 고려하는 표기..

데이터 분석 및 시각화/데이터 시각화

[Python] Matplotlib - 기초(style, 범례, label)

MatPlotlib이란 Matplotlib은 파이썬에서 자료를 차트(chart)나 플롯(plot, a graph showing the relation of two variables)으로 시각화 하는 패키지입니다. Matplotlib은 다음과 같은 정형화된 차트나 플롯 이외에도 저수준 API를 활용한 다양한 시각화 기능을 제공합니다. 라인 플롯(line plot) 스캐터 프롯(scatter plot) 컨투어 플롯(contour plot) 서피스 플롯(surface plot) 바 차트(bar chart) 히스토그램(histogram) 박스 플롯(box plot) matplotlib 및 matplotlib.pyplot 임포트하기 패키지에는 pyplot이라는 서브 패키지가 존재합니다. 이 pyplot 서브 패키..

일기

데이터엔지니어링 트랙 3주차 후기

배운 것들 이번주에는 넘파이, 판다스 위주로 데이터 관련 파이썬 라이브러리를 학습했다. 메소드 위주의 강의여서 몰랐던 메소드들을 배울 때마다 진짜 재밌게 들은 것 같다. 특히 판다스 cat 메서드 들을 때는 속으로 아차 싶었다. 예전에 범주형 변수 만드려고, 함수 만들어서 데이터 변환하고 타입 변환하고,, 심지어 ordinal일 때는 어렵게 어렵게 작성했는데, 메소드 한 줄로 끝내버리는 방법이 있었다... 역시 배워야한다고 다시 생각할 수 있었다. 넘파이도 정렬 과정에서 정렬 인덱스를 바로 반환하는 메서드가 있는데, 넘파이의 메모리 저장방식을 들어보면, 데이터가 커질수록 인덱스 array를 넘파이로 관리하는게 진짜 효율적이겠구나 싶었다. 실제 프로젝트 과정에서 인덱스를 넘파이로 저장하고, 그 넘파이 ar..

카테고리 없음

[백준]11399번 ATM/그리디

문제풀이 num = int(input()) way = list(map(int,input().split())) # 걸리는 시간을 오름차순으로 정렬 way.sort() tt = 0 wait = 0 for x in way: wait += x tt += wait print(tt) 설명 걸리는 시간을 짧은 순으로 정렬하고, 소요 시간을 계산하면 가장 최적해가 나온다. 링크 https://www.acmicpc.net/problem/11399

우상욱
데이터엔지니어스터디