분류 전체보기
-
[백준] 1236 성 지키기백준 Online Judge 2021. 9. 14. 21:14
1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net 문제 설명 모든 행과 열에 한 명 이상의 경비원이 있어야 한다. 입력 : 첫 번째 줄에는 행과 열의 수 그 이후부터 '.'은 빈칸, 'X'는 경비원 출력 : 필요한 경비원 수 # 행과 열의 개수 입력 받는다 n, m = map(int, input().split()) array = [] # 경비관의 유/무 여부를 입력 받는다. for _ in range(n): array.append(input()) # row, column에 처음 기본 값으로 0을 채워..
-
[상권 정보 분석] 기술 통계 분석데이터 분석 2021. 9. 14. 16:39
Describe로 요약하기 데이터의 갯수, 평균, 표준편차, 최솟값, 1사분위수(25%), 2사분위수(50%), 3사분위수(75%), 최댓값 등을 포함한다. # describe 로 기술통계값을 확인. # 25%: 1사분위수, 50%: 2사분위수, 75%: 3사분위수 df.describe() 데이터프레임은 2차 형태이므로, 리스트 형식으로 넣어준다. # 위도, 경도 데이터만 가져온다. df[['위도', '경도']].describe() 단변량 수치형 변수 시각화 # 위도의 distplot # 현재 데이터셋이 서울, 부산 지역이므로 두 개의 정규분포로 나온다. # 막대를 촘촘히 그리고 싶으로면 bins 값을 크게 잡는다. sns.displot(df["위도"]) # 위도의 평균, 중앙값을 표현. # Seabor..
-
[n114] 미분 개념과 경사하강법AI 부트캠프 2021. 9. 14. 09:54
기본 개념 미분과 적분은 변화에 관한 수학이다. 미분은 특정 값에 대해서 나오는 결과값이 변화하는 정도를 계산 하는 것이다. 머신러닝, 딥러닝을 사용 할 때 최적화를 위해 미분이 필요하다. 도함수의 개념 $f(a) = 3a$ 일 때, 기울기는 3이다. $ {df(a) \over da}$ 기울기는 도함수의 개념을 쉽게 말한 것이다. $slope(기울기) = {height \over width}$ $(fg)' = {f'g +fg'}$ Chain rule 개념 함수의 함수를 미분하기 위해 사용하는 방식이다. 예를 들어 $y={(3x^2+1)}^7$ 일 때, $dy \over dx$ 를 찾아야 할 경우, outside 함수의 미분부터 한 뒤, inside 함수의 미분을 실행 한다. Python 으로 미분하기 S..
-
[상권 정보 분석] 전처리 과정데이터 분석 2021. 9. 13. 20:29
데이터 전처리 기본 설정 라이브러리 import 및 폰트 설정 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 한글폰트를 설정. 설정 안하면 한글이 깨져서 나온다. # Mac plt.rc("font", family="AppleGothic") plt.rc("axes", unicode_minus=False) # 레티나 디스플레이로 폰트가 선명하게 표시. from IPython.display import set_matplotlib_formats set_matplotlib_formats("retina") 데이터 로드 # 파일을 로드한다. df = pd.read_csv("data/상가업소정보_201912_01.csv", sep..
-
[n113] Data Manipulation (concat, merge, melt, pivot, conditioning)AI 부트캠프 2021. 9. 13. 09:25
학습 내용 데이터를 concat / merge. tidy 데이터 에 대한 개념을 이해. melt와 pivot / pivot_table 함수를 사용. 여러개로 나뉘어 있는 데이터셋을 병합해야 하는 경우가 많다. 판다스를 통해 데이터를 합치는 과정을 배운다. Concat 2개의 문자열을 더하는 기능이다. data frame은 concat을 통해 붙일 수 있다. 문자를 더하는 다른 함수 예시 tostring join 문자를 나누는 함수 예시 split 코드 실행 pd.concat([x, y]) # column을 기준으로 붙일 때는 axis=1을 설정. df_stock_combined = pd.concat([df_stock, df_theme], axis=1) df_stock_combined axis=1로 설정하..
-
[데이터 시각화] 히트맵 및 swarmplot데이터 분석 2021. 9. 12. 22:40
앞서 concat으로 병합한 데이터셋 df를 활용하여 데이터 시각화를 하자. pivot_table 사용하기 # 연도를 인덱스로, 지역명을 컬럼으로 평당분양가격을 피봇테이블로 그리기. # pivot은 연산 없이 데이터 형태만 바꾸는 것 # pivot_table은 연산 가능 t = pd.pivot_table(df, index="연도", columns="지역명", values="평당분양가격").round() t 히트맵으로 구현하기 # 위에서 그린 피봇테이블을 히트맵으로 표현하기. plt.figure(figsize=(15, 7)) sns.heatmap(t, cmap="Blues", annot=True, fmt='.0f') plt.figure(figsize=(15, 7)) sns.heatmap(t.T, cmap=..
-
[데이터전처리] 컬럼이 다른 데이터셋 병합하기데이터 분석 2021. 9. 12. 22:31
두 개의 데이터셋 살펴보기 두 개의 데이터셋 df_first, df_last는 다음과 같다. df_first.head() df_last.head() melt를 이용하여 reshaping 지역에 따라 각 기간별 평당분양가격으로 melt 한다. # pd.melt 를 사용하며, 녹인 데이터는 df_first_melt 변수에 담는다. df_first_melt = df_first.melt(id_vars="지역", var_name="기간", value_name="평당분양가격") df_first_melt.head() df_last 데이터셋의 column 이름에 맞춰 변경한다. # df_first_melt 변수에 담겨진 컬럼의 이름을 # ["지역명", "기간", "평당분양가격"] 으로 변경합니다. df_first_me..
-
[판다스&Seaborn] 데이터 시각화 (line, bar, relplot, catplot, violinplot, boxplot)데이터 분석 2021. 9. 12. 18:48
선 그래프와 막대 그래프 판다스를 이용하여 그래프를 그리고자 한다. 데이터는 앞서 사용한 전국 아파트 분양 가격을 이용한다. # 지역명으로 분양 가격의 평균을 구하고 선 그래프로 시각화 한다. g = df_last.groupby(["지역명"])["평당분양가격"].mean().sort_values(ascending=False) g.plot() # 지역명으로 분양 가격의 평균을 구하고 막대 그래프로 시각화 한다. g.plot.bar(rot=0, figsize=(10, 3)) # 전용면적으로 분양가격의 평균을 구하고 막대그래프로 시각화 한다. df_last.groupby(["전용면적"])["평당분양가격"].mean().plot.bar() # 연도별 분양가격의 평균을 구하고 막대그래프(bar)로 시각화 합니다...