[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

단층 퍼셉트론 - 회귀분석 구현

데이터를 기반으로 전복의 고리수를 예측하는 단층 퍼셉트론을 구현해보자. 주어진 데이터는 'Sex', 'Length', 'Diameter', 'Height', 'Whole weight', 'Shucked weight', 'Viscera weight', 'Shell weight', 그리고 결과치가 되는 'Rings' 이상 9개이다. 데이터의 80%는 학습 데이터로, 20%는 테스트 데이터로 활용된다. 수업에서 사용된 코드를 분석한 자료입니다. 파이썬 모듈 불러오기 import numpy as np import csv import time np.random.seed(1234) def randomize(): np.random.seed(time.time()) 필요한 모듈을 불러온다. 추후 활용될 랜덤에 대비하여 ..

[알고리즘 연습] 약수 구하기 효율화 (by Python)

약수 효율적으로 구하기 1 이상의 자연수 n을 받았을 때 해당 수의 약수들을 구하라. 약수들은 리스트 형태로 숫자 크기 순서대로 출력하라. 단순 풀이 def get_divisor(n): n = int(n) divisors = [] for i in range(1, n + 1): if (n % i == 0): divisors.append(i) return divisors 가장 단순한 방법은 for문을 돌면서 하나씩 약수인지 체크(n % i == 0)하여 해당 값을 약수 리스트에 넣어주는 것이다. O(N)의 시간복잡도를 가진다. 효율화 풀이 def get_divisor(n): n = int(n) divisors = [] divisors_back = [] for i in range(1, int(n**(1/2))..

Pandas 데이터프레임 정렬

sort_values sort_values(by='정렬기준컬럼', ascending=True or False) 를 사용하여 데이터프레임을 정렬할 수 있다. by 옵션에 정렬기준이 될 컬럼을 넣고, ascending에 내림차순 여부를 체크하면 된다. my_labels = list(df.City) my_GenderRatio = list(df.GenderRatio) df0 = pd.DataFrame( {'GenderRatio':my_GenderRatio}, index = my_labels) df0 ==결과== GenderRatio 옹진군 1.29 화천군 1.27 고성군 1.15 괴산군 1.03 신안군 1.11 울릉군 1.15 위와 같은 데이터가 있다고 하자. (위 데이터는 전국의 인구 통계 자료에서 뽑아낸 자..

Pandas 데이터 시각화 카테고리

카테고리 # 교통사고 시간대 # 0-2, 3-5, 6-8, 9-11, 12-14, 15-17, 18-20, 21-23시 8개의 구간 time_df = data['발생년월일시'] % 100 bins = [-1, 2, 5, 8, 11,14,17, 20, 24] labels = ['0-2', '3-5', '6-8', '9-11', '12-14', '15-17', '18-20','21-23'] time_cats = pd.cut(list(time_df.values), bins, labels = labels) rs = time_cats.value_counts()==결과== 0-2 421 ..

Pandas 데이터 시각화 한글깨짐

한글깨짐 import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline data = pd.read_csv('Traffic_Accident_2017.csv', header='infer',encoding = 'euc-kr') t = data['요일'].value_counts() y = t[['월','화','수','목','금','토','일']] x = ['월','화','수','목','금','토','일'] plt.title("요일별 교통사고 사망 건수") plt.xlabel("요일") plt.ylabel("사고 건수") plt.ylim(500, 620) plt.bar(x, y) plt.show() 한글로 이루어진 ..

파이썬 정규표현식 - 그룹 만들기

정규표현식 그룹 import re list_c = ['코끼리는 코끼리', '강아지는 강아지', '고양이는 고양이'] p = re.compile(r'(?P.+).\s\1') for i in list_c: print(p.match(i).group('name')) ==결과== 코끼리 강아지 고양이 특정구간을 ()로 묶어 그룹으로 만들 수 있다. 그렇게 묶인 group은 순서대로 번호가 메겨져 .group(n)으로 뽑을 수 있다. 그룹을 만들때 제일 앞에 ?P을 넣어 그룹 이름을 부여할 수도 있다. 그렇게하면 .group('그룹이름')으로 뽑을 수 있다. 예제 Q. ['김철수 - 학점 2.0', '박철수 - 학점 3.0', '이철수 - 학점 4.0']에서 학점을 모두 4.5로 바꿔주세요! list_d = ['김..

파이썬 정규표현식 - 기초활용

정규표현식 import re 자연어처리과정 중 데이터 전처리 과정에서는 데이터에서 유의미한 것을 찾아 처리해야 한다. 이럴 때 주로 활용되는 것이 정규표현식이다. 문자열의 패턴을 특정형태로 표현하여 텍스트에서 해당 문자열을 검색하거나 치환할 때 활용할 수 있다. 파이썬에서는 re 모듈을 import하여 사용한다. 정규식 객체 re.compile(".") re.compile(검색할문자열) 함수를 호출하면 정규식 객체 (re.RegexObject 클래스 객체)를 리턴하게 된다. re.RegexObject 클래스는 여러 메소드를 보유하여 문자열 검색 혹은 치환을 도와준다. 즉, 특정문자를 담고있는 정규식 객체를 활용하여 문자열을 검사 및 수정하는 것이다. match() : 문자열의 처음부터 정규식과 매치되는지..

Pandas 데이터 시각화

Pandas 데이터 시각화 df0.loc[:,['Sepal.Width','Petal.Length']].plot.hist(bins=50,color=['red','blue'],alpha=0.6) plt.show() 데이터를 처리해줄 필요없이, plot.hist()와 같은 함수로 데이터 시각화가 가능하다. 한번에 두개를 그릴 수도 있다. (범례도 자동 출력된다.) 해당 기능도 결국은 plt에 그리는 것이다. (즉, plt.show()는 필요하다.) hist 외에도 scatter, bar 등 다양한 그래프를 그릴 수 있다. line 선 그래프 bar 수직 막대 그래프 barh 수평 막대 그래프 his 히스토그램 box 박스 플롯 kde 커널 밀도 그래프 area 면적 그래프 pie 파이 그래프 scatter 산..

Pandas 데이터프레임 그룹 나누기

DataFrameGroupBy object import pandas as pd import numpy as np # csv 파일에서 df정보 불러오기 df = pd.read_csv('data/data_iris.csv', header='infer',encoding = 'latin1') df.groupby('Species') groupby(구분기준이 될 칼럼)을 통해 데이터 프레임을 그룹별로 나눌 수있다. 해당 함수의 결과는 위와 같이 DataFrameGroupBy object가 된다. DataFrameGroupBy object 활용 print(df.groupby('Species').mean()) print(df.groupby('Species').std()) ==결과== Sepal.Length Sepal.W..

Pandas 데이터프레임 결측치(null값) 제어

결측치 생성 import pandas as pd import numpy as np df = pd.read_csv('data/data_iris.csv', header='infer',encoding = 'latin1') # csv 파일에서 df정보 불러오기 df.count(axis=0) ==결과== Sepal.Length 150 Sepal.Width 150 Petal.Length 150 Petal.Width 150 Species 150 dtype: int64 # 결측치 생성 df.iloc[10,0] = np.nan df.iloc[32,2] = np.nan df.iloc[17,2] = np.nan df.iloc[129,2] = np.nan df.count(axis=0) ==결과== Sepal.Length 14..

반응형