파이썬(6)
-
2-1. K-Nearest Neighbors
1) 정의이해하기 쉬운 분류기(Classifier) 중 하나인 K-Nearest Neighbors 분류 알고리즘을 살펴보자. KNN알고리즘은 (이름 그대로) 가장 가까운 K개의 데이터를 고른 뒤, 그 중 가장 major한 클래스로 분류한다. 예를 들어 K값이 3이라면, 분류하고자 하는 데이터와 가장 가까운 3개의 데이터를 찾는다. 찾아낸 3개의 데이터의 클래스가 각각 토끼, 토끼, 거북이 라고 하면 우리가 지금 분류하고자 하는 데이터의 클래스는 토끼가 되는 것이다. 위의 예를 수도코드도 간단히 작성하면 다음과 같다. 이미 주어진 샘플 데이터는 X, 우리가 클래스를 정해주고자 하는 데이터를 C라고 하자. X안의 아이템들과 C의 거리를 계산하고그 중 계산된 거리 값이 가장 작은 3개의 아이템을 추려낸 뒤그 ..
2016.11.12 -
8. 객체(2) - 맹글링, 세 가지 메소드 타입, 덕 타이핑
1)private 네임 맹글링파이썬에는 특수한 형태의 변수 이름이 사용된다. __(언더스코어 두개)를 속성 이름 앞에 붙이면 클래스 정의 외부에서 그 속성을 볼 수 없게된다. 1234567891011class Person(): def __init__(self,name): self.__name=name @property def name(self): print('inside the getter') return self._name @name.setter def name(self, name): print('inside the setter') self.__name=namecs 이렇게 정의된 Person 객체에서 directly 객체.__name을 불러내려고 하면 에러가 뜬다.**물론 객체._Person__name..
2016.10.27 -
7. 객체(1)-객체 생성하기, 상속
1)객체 생성파이썬의 객체에서 초기화 역할을 담당하는 것은 __init__(self) 함수이다. 첫번째 인자는 반드시 self이며, 객체를 생성할 때 받을 객체의 내부 정보를 self 뒤에 인자로 적어주면 된다.-->이때 self는 객체 내부에서 '자기자신'을 가리키는 변수이다.-->모든 클래스 정의에 __init__를 포함할 필요는 없지만, __init__를 통해 같은 클래스의 변수끼리 구분을 용이하게 한다. 예) Jack과 Lucy는 서로 다른 Person이지만, __init__를 이용해 둘을 구분할 수 있을만한 처리를 하지 않으면 내부상으로는 차이가 없을것이다. 아래의 Person클래스는 생성시 sname과 sage를 받아 객체 내부에 각각 name과 age값을 지정하는데 이용한다. *pass 는 ..
2016.10.25 -
3. 루프, 순회(이터레이션)
1) 코멘트, 다음 라인에 이어서 쓰기 12345#코멘트를 쓸 수 있다.alphabet='abcedfg'+\ 'hijklmnop'+\ 'qrstuv'+\ 'wxyz'cs 2) if, elif, else12345678first=Truesecond=Falseif first: print("FIRST!")elif second: print("SECOND!")else: print("nothing...")cs 3) while, else, break12345678counter=5while counter>0: sentence=input("String to swap-case [type q to quit]: ") if sentence==q: break print(sentence.swapcase())else: print("다..
2016.10.14 -
2. 리스트, 튜플, 딕셔너리, 셋
1)리스트[]로 생성하며 문자열과 다르게 변경이 가능하다. 동일한 값이 여러번 들어가는 것도 가능하다. weekdays=['Mondays','Tuesday','Wednesday','Thursday','Friday'] list('cat')--> ['c','a','t'] 으로 형변환이 가능하다. weekdays[1]--> 'Tuesday' 처럼 오프셋으로 하나의 특정 값을 추출하는 것도 가능하다. 문자열과 마찬가지로 음수의 인덱스로 거꾸로 값을 추출하는 것도 가능. weekdays[1]='화요일'--> 특정 오프셋의 원소를 바꿀 수 있다. weekdays[2:5:2]문자열과 마찬가지로 슬라이스로 항목을 추출하는 것이 가능하다. 리스트의 멤버함수는 다음과 같다. 기능예시 append()리스트의 끝에 새 항목을..
2016.10.13 -
1. 숫자, 문자열, 변수
1) 숫자 연산파이선은 strong type으로 객체의 타입을 바꿀 수 없다. /부동소수점 나누기//정수 나누기 (버림)%나머지divmod(a,b)(몫, 나머지)**지수 2)형변환int(True)int(98.6)int('98.6')int('99 bottles of beer on the wall')float(True)float(98)float('99')float('98.6')str(99)str(Ture) 3)문자열다른 언어와 달리 파이썬에서는 문자열이 불변이다. 문자열 자체는 변경할 수 없지만 문자열의 일부를 다른 문자열로 복사할 수는 있다. 'hi'"hi" -> 둘은 같은 문자열을 나타낸다. '"hi"'-> '안에 "를 넣을 수도 있고, "안에 '를 넣을 수도 있다. '''hi'''"""hi"""-> 세..
2016.10.10