Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 재귀함수
- trivial solution
- matrix trnasformations
- nonhomogeneous linear system
- 빅세타
- one-to-one
- 일차변환
- 코틀린 시작하기
- 빅오메가
- 코틀린 Hello World!
- 배열 섞기
- solutions of matrix equation
- 빅오 표기법
- 이진 탐색
- NumPy
- Big-O 예제
- Big-Oh 예제
- nontrivial solution
- itertools
- 랜덤 순서 배열
- matrix-vector product
- homogeneous linear system
- recursive algorithms
- 알고리즘 분석의 실례
- matrix fo a linear transformation
- python
- linear dependence
- Big Theta
- Big-Oh notation
- Big Omega
Archives
- Today
- Total
코딩 연습
(파이썬) 최빈값 구하기 본문
반응형
파이썬을 이용하여 최빈값(mode)를 구하기 위해서는 collections 모듈의 Counter 클래스를 알고 있어야 한다. Counter는 사전(dict) 클래스의 하위 클래스로 리스트나 튜플에서 각 데이터가 등장한 횟수를 사전 형식으로 돌려준다. 예를 들면 다음과 같다.
>>> from collections import Counter
>>> colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']
>>> cnt = Counter(colors)
>>> cnt
Counter({'blue': 3, 'red': 2, 'green': 1})
또한 Counter 클래스의 most_common() 메쏘드는 등장한 횟수를 내림차순으로 정리하여 다음과 같이 보여준다.
>>> numbers = [1, 2, 3, 3, 4, 4, 4, 5, 5]
>>> from collections import Counter
>>> cnt = Counter(numbers)
>>> cnt.most_common()
[(4, 3), (3, 2), (5, 2), (1, 1), (2, 1)]
리스트(list)를 구성하는 요소들은 튜플(tuple)인데, 각 튜플의 첫 번째 요소는 numbers에 등장하는 숫자이고, 두 번째 요소는 각 숫자가 등장한 횟수이다. 만약 등장한 횟수가 같은 수들은 임의의 순서로 정렬되어 보여지게 된다. 만약 상위 3개의 결과만을 원한다면 다음과 같이 하면 된다.
>>> cnt.most_common(3)
[(4, 3), (3, 2), (5, 2)]
최빈값을 얻어내고 싶다면 다음과 같이 하면 된다.
>>> mode = cnt.most_common(1)
>>> mode
[(4, 3)]
>>> mode[0][0]
4
자 이제 최빈값을 찾아내는 함수를 만든다면 다음과 같은 형태가 될 것이다.
from collections import Counter
def modefinder(numbers): #numbers는 리스트나 튜플 형태의 데이터
c = Counter(numbers)
mode = c.most_common(1)
return mode[0][0]
만약 최빈수가 2개 이상 존재한다면 다음과 같이 함수를 만들 수 있다.
from collections import Counter
def modefinder(numbers):
c = Counter(numbers)
order = c.most_common()
maximum = order[0][1]
modes = []
for num in order:
if num[1] == maximum:
modes.append(num[0])
return modes
위와 같이 하면 최빈값들이 리스트의 형태로 modes에 저장되어 리턴 된다.
반응형
'Python' 카테고리의 다른 글
(파이썬) 방정식 풀기 (0) | 2016.03.15 |
---|---|
(파이썬) 다항식의 전개와 인수분해 (0) | 2016.03.15 |
(파이썬) 막대 그래프 그리기 (0) | 2016.03.15 |
(파이썬) 함수식을 이용한 이차함수의 그래프 그리기 (2) | 2016.03.15 |
(파이썬) 꺽은선 그래프 그리기 (0) | 2016.03.15 |
Comments