python计算平均数、众数、中位数、极差、方差、标准差……

第一步:加载数据源-手动输入需要统计的数据

def num(a):
    if float(a) == int(a):
        return int(a)
    return float(a)
#添加数据
li = []
print("请逐条添加数据!  (若退出请输入0000)")
while True:
    print("请输入:")
    x = input()
    if x == "0000":
        break
    li.append(num(float(x)))

第二步:计算统计指标

"""
功能一:最大值、最小值、总和
"""
print("最大值:",max(li))
print("最小值:",min(li))
print("总和:",sum(li))
"""
功能二:平均数
平均数,统计学术语,是表示一组数据集中趋势的量数,是指在一组数据中所有数据之和再除以这组数据的个数。
它是反映数据集中趋势的一项指标。解答平均数应用题的关键在于确定“总数量”以及和总数量对应的总份数。
"""
avg = sum(li) / len(li)
print("平均数:",avg)
"""
功能三:众数
是一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。
"""
print(li)

d = {}

for i in li:
    ss = d.get(i)    
    if ss == None:
        d[i] = 1
    else:
        d[i] += 1

for i in d.items():
    if i[1] == max(d.values()):
        print("众数:",i[0])
"""
功能四:中位数
对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。
"""

lis = sorted(li)
if len(lis) % 2 == 1:
    print("中位数:",lis[int((len(lis) - 1) / 2)])
else:
    print("中位数:",(lis[int(len(lis) / 2 - 1)] + lis[int(len(lis) / 2)]) / 2)
"""
功能五:极差
极差又称范围误差或全距(Range),以R表示,
是用来表示统计资料中的变异量数(measures of variation),其最大值与最小值之间的差距,即最大值减最小值后所得之数据。
"""

print("极差:",max(li) - min(li))
"""
功能六:方差与标准差
统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。
标准差(Standard Deviation) ,中文环境中又常称均方差,是离均差平方的算术平均数的平方根,用σ表示。标准差是方差的算术平方根。
标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。
"""

sum1 = 0
for i in li:
    sum1 += (i - avg) ** 2
print("方差:",sum1 / len(li))
print("标准差:",(sum1 / len(li)) ** (1 / 2))

"""
 方差越小越稳定。 例如,1.1.2.2,波动大,方差为0.25;而1.1.1.1,没有波动,方差就是0。 所以方差越小越稳定。
"""

你可能感兴趣的:(统计,统计学,数据分析,python,数学建模)