平均数 mean
一组数:23 29 20 32 23 21 33 25
mean: (23+29+20+32+23+21+33+25)/8 = 25.75
L = [23, 29, 20, 32, 23, 21, 33, 25]
mean = sum(L) / 8
中位数 median
比它小和比它大的数的数量同样多,如果总的数量为偶数,取中间两个的平均值
首先将上面的数排序:20, 21, 23, 23, 25, 29, 32, 33
median: (23+25)/2 = 24
def quick(value):
'''排序函数
'''
if len(value) < 2:
return value
mark = value[0]
smaller = [x for x in value if x < mark]
equal = [x for x in value if x == mark]
bigger = [x for x in value if x > mark]
return quick(smaller) + equal + quick(bigger)
L = quick(L)
index = len(L) // 2
if not index:
mdeian = L[index]
else:
mdeian = (L[index-1] + L[index]) / 2
print(mdeian)
# 你也可以用下面的函数方法排序
def insert(value):
for i in range(1,len(value)):
temp = value[i]
pos = i
for j in range(i-1, -1, -1):
if value[j] > temp:
value[j+1] = value[j]
pos = j
else:
pos = j + 1
break
value[pos] = temp
return value
众数 mode
正如它的名字,出现次数最多的数字就是众数
众数可以为多个
def mode_fun(value):
l = []
d = {}
mode = []
for i in range(len(value)): # 把数字和对应的数学存入字典
if value[i] in d:
d[value[i]] += 1
else:
d[value[i]] = 1
for k, v in d.items(): # item返回元组
l.append(v)
for k, v in d.items():
if v == max(l):
mode.append(k)
return mode
mode_fun(L)
也可以直接通过
import numpy, scipy
很快的得出答案
博主个人能力有限,错误在所难免.
如发现错误请不要吝啬,发邮件给博主更正内容,在此提前鸣谢.
Email: JentChang@163.com (来信请注明文章标题,如果附带链接就更方便了)