Skip to content

Instantly share code, notes, and snippets.

@b1
Last active December 15, 2015 15:49
Show Gist options
  • Save b1/5284657 to your computer and use it in GitHub Desktop.
Save b1/5284657 to your computer and use it in GitHub Desktop.
mediana 50
#!/usr/bin/python
# coding: utf-8
""" """
def mediana(_list=None):
"""
Медиана (50-й перцентиль, квантиль 0,5) — возможное значение признака, которое делит ранжированную совокупность
(вариационный ряд выборки) на две равные части: 50 % «нижних» единиц ряда данных будут иметь значение признака
не больше, чем медиана, а "верхние" 50 % — значения признака не меньше, чем медиана.
>>> mediana([1,2,3,4,5])
3
>>> mediana([1,2,3,4,100500])
3
>>> mediana([1,2,3,4])
2.5
>>> mediana([3,2,1,4])
2.5
"""
if _list is None or len(_list):
return None
center = len(_list) / 2
ordered = sorted(_list)
if len(ordered) % 2:
return ordered[center]
else:
return float( ordered[center-1] + ordered[center] ) / 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment