Python 之基本统计计算

导读:本篇文章讲解 Python 之基本统计计算,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

        日常生活中我们经常需要统计,如学生成绩,实验数据等,涉及总数,平均值,中位数,方差等。如何快速获得想要的结果呢?下面请 Python 来帮忙。

 

print('请依次输入需统计的数值,完毕回车:')

def getNum():    #获取用户不定长度的输入
    nums=[]
    NumStr=input('')
    while NumStr !='':
        nums.append(eval(NumStr))
        NumStr=input('')
    return nums

def mean(nums):    #计算平均值
    s=0.0
    for num in nums:
        s+=num
    return s/len(nums)

def dev(nums,mean):    #计算标准差
    s=0.0
    for num in nums:
        s+=(num-mean)**2
    return pow(s/(len(nums)-1),0.5)

def median(nums):    #计算中位数
    nums.sort()    #sorted(nums)亦可,但需赋值并调用
    num=len(nums)
    if num%2==0:
        med=(nums[num//2-1]+nums[num//2])/2
    else:
        med=nums[num//2]
    return med

n=getNum()    #主体函数
m=mean(n)
print('所求平均值:{:.2f};方差:{:.2f};中位数:{:.2f}。'.format(m,dev(n,m),median(n)))

 

        示例:A 组成员 10 人,本次测验成绩如下:99,97,99,93,89,22,68,87,63,92,请计算其平均成绩,方差和中位数。

Python 之基本统计计算

 

          或者利用列表的特点:

print('请依次输入需统计的数值,以逗号隔开,完毕回车:')

def getNum():
    ls=list(eval(input()))
    return ls

def mean(nums):
    s=0.0
    for num in nums:
        s+=num
    return s/len(nums)
    
def dev(nums,mean):
    s=0.0
    for num in nums:
        s+=(num-mean)**2
    return pow(s/(len(nums)-1),0.5)

def median(nums):
    nums.sort()
    num=len(nums)
    if num%2==0:
        med=(nums[num//2-1]+nums[num//2])/2
    else:
        med=nums[num//2]
    return med
    
n=getNum()
m=mean(n)
print('所求平均值:{:.2f};方差:{:.2f};中位数:{:.2f}。'.format(m,dev(n,m),median(n)))

        图例:

Python 之基本统计计算

 

         需要注意的是,计算中位数时需要对对象排序,可以使用列表的操作函数sort()或内置函数sorted(),二者有所区别,具体参见 Python序列

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106975.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!