赞
踩
大家好,给大家分享一下python123和中国大学慕课,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
-总个数:len()
-求和:for...in
-平均值:求和/总个数
-方差:各数据与平均数差的平方的和的平均数
-中位数:排序,奇数找中间一个,偶数找中间两个求平均
- #CalStatisticsV1.py
- def getNum():
- nums=[]
- iNumStr=input("请输入数字(回车推出):")
- while iNumStr!="":
- nums.append(eval(iNumStr))
- iNumStr=input("请输入数字(回车推出):")
- return nums
- def mean(numbers):
- s=0.0
- for num in numbers:
- s=s+num
- return s/len(numbers)
- def dev(numbers,mean):
- sdev=0.0
- for num in numbers:
- sdev=sdev+(num-mean)**2
- return pow(sdev/(len(numbers)-1),0.5)
- def median(numbers):
- sorted(numbers)
- size=len(numbers)
- if size % 2==0:
- med=(numbers[size//2-1]+numbers[size//2])/2
- else:
- med=numbers[size//2]
- return med
- n=getNum()
- m=mean(n)
- print("平均值:{},标准差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))
#CalStatisticsV1.py
def getNum():
定义函数获取用户输入
num=[]
定义一个列表类型
iNumStr=input("请输入数字(回车推出):")
定义iNumStr,并提示用户输入
while iNumStr!="":
如果用户输入的不是回车
nums.append(eval(iNumStr))
就是把用户输入加到列表中
iNumStr=input("请输入数字(回车推出):")
循环获取用户输入
return nums
返回列表
def mean(numbers):
传入列表的参数
s=0.0
初始化s,为下面加和做准备
for num in numbers:
s=s+num
循环加和列表中的元素
return s/len(numbers)
返回平均值
def dev(numbers,mean):
sdev=0.0
初始化sdev,为下面加和做准备
for num in numbers:
sdev=sdev+(num-mean)**2
循环求标准差
return pow(sdev/(len(numbers)-1),0.5)
返回标准差
def median(numbers):
传入列表的参数
sorted(numbers)
排序列表中的元素
size=len(numbers)
获取列表的长度
if size % 2==0:
如果长度为偶数个
med=(numbers[size//2-1]+numbers[size//2])/2
就取中间两个求平均数
else:
如果长度为奇数个
med=numbers[size//2]
就取中间的
return med
返回中位数
n=getNum()
将getNum函数的返回值赋给n
m=mean(n)
将n的值传入m,并获取返回值赋给m
print("平均值:{},方差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))
技术能力扩展
-获取多个数据:从控制台获取多个不确定数据的方法
-分隔多个函数:模块化设计方法
-充分利用函数:充分利用python提供的内容函数
ps:标准差的两种计算公式
1.如果我们取一个样本的全部数据,求标准差的公式如下图
2.如果我们仅取一个样本的部分数据,我们可以估计样本的标准差的值,这时我们使用公式如下图
3.一般来说,我们在统计大数据样本时更多使用的是估计出来的标准差,所以为了代码的实用性这里选择的是第二种标准差的求法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。