본문 바로가기

노력

(41)
5. 파이썬 개인공부 5 (함수형 패러다임) functional paradigm에서는 어떤 값을 튜플로 주로 사용한다. 모든 것은 함수 기반이다. a = 0b = a+1a = 3 - 절차적 패러다임 절차적 패러다임은 일일히 다 보아야 사용할 수 있다. 함수형 패러다임은 유지보수가 간편하다. (함수가 잘 짜여져 있는지만 확인하면 된다.) 우리의 주 패러다임은 객체지향이다. 객체지향과 함수형 패러다임은 비슷한 편. %timeit ((((1+2)+3)+4)+5)100000000 loops, best of 3: 14.7 ns per loop %timeit (1+(2+(3+(4+5))))10000000 loops, best of 3: 14.9 ns per loop 괄호 하나차이로도 속도의 차이가 크게 난다. 파이썬은 앞에서부터 계산하기 때문. 절차적 패러다..
4. 파이썬 개인공부 4 (반복) 피보나치 수열 : 1 1 2 3 5 8 13 ... dynamic programming : 결과를 계속 이어서 사용하는 기법 -> 가장 기본적으로 피보나치 구현하는 방법 def fib(n): a, b = 0, 1 while a 이 기법에 익숙해져야 한다. 재귀 : 나를 나보다 더 작은 단위로 나누어서 다시 호출하는 방식 느려서 재귀방식을 쓰지 말라고 하는 언어가 있다. 현대적인 언어들은 언어단에서 function의 결과를 저장해서 다시 재귀함수의 속도가 느리지 않다. 파이썬은 tai..
3. 파이썬 개인공부 3 (데이터 타입, 함수) 값을 생성하는 방식: 리터럴 방식, 객체 방식 딕셔너리를 생성하는 리터럴 방식 : {'a':1, 'b':2}딕셔너리를 생성하는 객체 방식 : dict(a=1,b=2) 함수 : def moon(a, a) : return a 함수의 파라미터가 두 개 같은 것이 들어간다면 에러발생 {'a':1, 'a':2} : 나중것으로 할당되는다.dict(a=1, a=2) : 위의 이유로 에러발생, 좋은 개념은 아니다. def moon(a=3): return a 위 처럼 파라미터의 기본값을 두면 moon()처럼 입력값이 없어도 기본값인 3이 출력된다. def moon(a=3, b=7): return a+b 파라미터는 순서대로 들어간다.(positional 방식) 직접 명시해주는 방식은 keyword 방식 moon(a=1, ..
2. 파이썬 개인공부 2 (데이터 타입) 많이 사용하는 것은 리터럴이 있다. range, bytearray, frozenset처럼 객체방식을 쓸 필요가 없다. x = bytearray() 리터럴이지만 어쩔 수 없이 객체를 사용해야 하는 것 : 집합 y = set() : 이렇게 해야 공집합을 만들 수 있다. b = list(range(10))b : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]10b = [range(10)]b : [range(0, 10)] 리스트를 리터럴로 선언하는 방식과 그냥 대괄호로 선언하는 방식이 조금 다르다. 중복이 있는 리스트를 set()으로 덮어버리면 중복이 제거된 상태로 출력된다. 딕셔너리: 그냥 일반적인 선언: y = {"a":1, "b":2}, y = {3:1, "b":2} -> 이렇게 숫자를 사용한 키도..
1. 파이썬 개인공부 1 (데이터 타입) 숫자형 : 이뮤터블(immutable)이고, 시퀀스형이 아니다.문자열 : str->sequencebytes->ascii code, immutablebytearray->mutable 시퀀스 형 : 순서가 있는 형str(unicode)bytesbytearraylisttuplerange뮤터블 : 자기 자신이 변할 수 있는 컨테이너listbytearray c = 'wow'id(c) : c의 메모리 주소를 나타낸다. "wow""baby" : 이런 식으로 사용할 수도 있지만 +를 사용하는 것이 직관력을 더 높인다. id(d) -> 1498240120200d = d + [4]id(4) -> 1498240633544 - 이 현상에서 알 수 있는 것은 파이썬에도 가비지컬렉션이 있다는 것이다. d.append(5)did(..
3. 분포 데이터 과학을 위한 통계: 데이터 분석에서 머신러닝까지 50가지 핵심 개념, 피터 브루스, 앤드루 브루스 지음 아래 내용은 위의 책을 보고 제가 공부한 내용을 적은 것입니다. 혹시나 든 예시, 계산 등에 틀린 점이 있다면 꼭 알려주세요. 데이터 분포 탐색 데이터의 위치, 변이뿐 아니라 데이터가 어떻게 분포되어 있는지를 알아보는 것도 유용하다. 상자그림(boxplot): 데이터의 분포를 시각화하기 위한 간단한 방법으로 소개한 그림도수분포표(frequency table): 어떤 구간에 해당하는 수치 데이터 값들의 빈도를 나타내는 기록히스토그램(histogram): x축은 구간들을, y축은 빈도수를 나타내는 도수 테이블의 그림밀도 그림(density plot): 히스토그램을 부드러운 곡선으로 나타낸 그림, 커..
2. 추정 데이터 과학을 위한 통계: 데이터 분석에서 머신러닝까지 50가지 핵심 개념, 피터 브루스, 앤드루 브루스 지음아래 내용은 위의 책을 보고 제가 공부한 내용을 적은 것입니다. 혹시나 든 예시, 계산 등에 틀린 점이 있다면 꼭 알려주세요. 위치 추정 데이터를 살펴보는 가장 기초적인 단계는 각 피처의 대푯값을 구하는 것이다. 이는 곧 대부분의 값이 어디쯤에 위치하는지를 나타내는 추정값이다. 평균(mean): 모든 값의 총합을 개수로 나눈 값가중 평균(weighted mean): 가중치를 곱한 값의 총합을 가중치의 총합으로 나눈 값중간값(median): 데이터에서 가장 가운데 위치한 값가중 중간값(weighted median): 데이터를 정렬한 후, 각 가중치 값을 위에서부터 더할 때, 총합의 중간이 위치하는 ..
1. 데이터의 형태 정형 데이터 일상적으로 생성되는 수많은 실시간 데이터들은 대부분 정형화되지 않은 상태이다. 데이터 과학에서 가장 중요한 것 중 하나는 이런 정형화되지 않은 데이터(raw data)를 활용 가능한 형태의 정보로 변환하는 것이다. 일반적으로 아는 통계적인 개념들을 활용하기 위해서는, 정형화되지 않은 원시 데이터를 가공해 정형화된 형태로 변환하거나 처음부터 특정 목적으로 수집해야한다. - 정형 데이터의 종류연속형(continuous): 일정 범위 안에서 어떤 값이든 취할 수 있는 데이터 (구간형, 실수형, 수치형 데이터) - 풍속, 지속시간 등이산형(discrete): 횟수와 같은 정수 값만 취할 수 있다. (정수형, 횟수 데이터) - 사건의 발생 빈도 등범주형(categorical): 가능한 범주 안의 값만..