Skip to content

Latest commit

 

History

History
110 lines (77 loc) · 1.95 KB

statistics.md

File metadata and controls

110 lines (77 loc) · 1.95 KB

https://bbs.pythontab.com/thread-2551-1-1.html

import numpy as np
from math import pow
from operator import add,mul
from functools import reduce



data = [4.5,6.5,7,8,10,12]

print('数据:')
print(data)


#数据个数
size = len(data)


#数据求和
total = sum(data)


#数据平均值
mean = total/size


#数据中值
def compute_median(data):
    #计算中值
    size = len(data)
    pos = int(size/2)
    if size % 2 == 0:
        median = (data[pos]+data[pos-1])/2
    else:
        median = data[pos]
    return median
median = compute_median(data)


#几何平均值
def compute_geometric_mean(data):
    #计算几何平均值
    size = len(data)
    return pow(reduce(mul,data),1.0/size)

geometric_mean = compute_geometric_mean(data)

#调和平均值
def compute_harmonic_mean(data):
    #计算调和平均值
    size = len(data)
    return size/sum([1.0/i for i in data])
harmonic_mean = compute_harmonic_mean(data)


print()
print('中心位置测定值')
print('算术平均值:%s'%mean)
print('中值:%s'%median)
print('几何平均值:%.2f'%geometric_mean)
print('调和平均值:%.2f'%harmonic_mean)



#最小值
min_value = min(data)

#最大值
max_value = max(data)

#全距
range_value = max_value - min_value

#样本平方差
def compute_s2(data,mean):
    #计算样本平方差

    return 1.0/(len(data)-1)*reduce(add,map(lambda x:(x-mean)**2,data))
s2 = compute_s2(data,8.0)

#样本标准偏差
standard_deviation = pow(s2,1.0/2)

#变异系数
CV =standard_deviation/mean

#百分位数

pos1 = int(size * 1/4)
Q1 = data[pos1]
pos2 = int(size * 2/4)
Q2 = data[pos2]
pos3 = int(size * 3/4)
Q3 = data[pos3]


print()
print('分散度测定值')
print('最小值:%s'%min_value)
print('最大值:%s'%max_value)
print('全距:%s'%range_value)
print('标准偏差:%.2f'%standard_deviation)
print('变异系数:%.2f'%CV)
print('第一四分位数:%s'%Q1)
print('第二四分位数:%s'%Q2)
print('第三四分位数:%s'%Q3)