python编程统计列表中各数据的方差和标准差请编写主函数和计算方差的函数var。(不能引用库里)
def fangcha(): a=float(raw_input("请输入a:")) b=float(raw_input("请输入b:")) c=float(raw_input("请输入C:")) d=(a+b+c)/3.0 e=((a-d)**2+(b-d)**2+(c-d)**2)/3.0 print "平均数是:%f方差是:%f" %(d,e) fangcha() Python2.7可用
成都创新互联专注于合江企业网站建设,自适应网站建设,购物商城网站建设。合江网站建设公司,为合江等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
Python如何使用sd()函数求数据的标准差
python的求
标准差
的函数是std,是numpy库的成员,
如果非要
用sd函数求标准差,也不是不行(from
numpy
import
std
as
sd)。其参数是所需求标准差的矩阵或列表,
返回值
即标准差。示范如下:
import
numpy
as
np;
from
numpy
import
std
as
sd;
print([1,
2,3],"的标准差是);
print(sd([1,2,3]));
Python:使用pandas和numpy计算标准差的区别
首先,普及一下pandas与numpy的区别:
pandas操作的数据集是Series,本质上是列表与字典的混合,常用的数据形式为DataFrame;
numpy操作的数据集是数组或矩阵。
1、对数组求均值、方差、标准差
2、对矩阵求标准差
注意:在求标准差时需要注意几个问题:
1、在统计学中,标准差分为两种:
(1)总体标准差:标准差公式根号内除以n,是有偏的。
(2)样本标准差:标准差公式根号内除以n-1,是无偏的。
2、pandas与numpy在计算标准差时的区别
(1)numpy
在numpy中计算标准差时,括号内要指定ddof的值,ddof表示自由度,当ddof=0时计算的是总体标准差;当ddof=1时计算的是样本标准差,当不为ddof设置值时,其默认为总体标准差。
(2)pandas
在使用pandas计算标准差时,其与numpy的默认情况是相反的,在默认情况下,pandas计算的标准差为样本标准差。
求python的list的差值
要完全避免for,连列表表达式中使用for都不可以的话,主要就靠functools的reduce了。
因为在排除for之后,简单直接的办法中,只有reduce是可以处理列表中连续两个元素的。
当然,也可以不用reduce,使用map也是可以的:
至于做成方法,定义一个基于list的类后也差不多:
用python求数据表中数据的均值与方差
以下为代码:
numstr = input("请输入全部数据:用英文逗号(,),中文逗号(,),\
空格( ),制表符(tab键)或换行(请一次性复制过来)中的一种统一分隔数据:")
if "," in numstr:
numlist = numstr.split(",")
elif "," in numstr:
numlist = numstr.split(",")
elif "\t" in numstr:
numlist = numstr.split("\t")
elif "\n" in numstr:
numlist = numstr.split("\n")
elif " " in numstr:
numlist = numstr.split(" ")
else:
numlist = [numstr]
numlist = list(map(lambda x:x.strip(",").strip(",").\
strip("\t").strip("\n").strip(" "), numlist))
for i in numlist.copy():
try:
a = float(i)
except:
numlist.remove(i)
print("已过滤字符串:%s"%i)
#好了,上面很多只是方便用户而已(但还是有一些有用的),主要是下面
numlist = list(map(lambda x:float(x), numlist))#所有字符串转为浮点
print("最终数列:",numlist)#输出最终数列,进行核对
average = sum(numlist)/len(numlist)#用数列和除以出列长度得到平均数
variance = 0#方差,先记为0
for i in numlist:#遍历列表
variance += (i - average) ** 2#反正就是公式对吧,先加进去
variance /= len(numlist)#还是公式,那一长串还得除以一个数列长度
print("均值:%.2f\n方差:%.2f"%(average, variance))#分两行输出
以下为输出效果:
请输入全部数据:用英文逗号(,),中文逗号(,),空格( ),制表符(tab键)或换行(请一次性复制过来)中的一种统一分隔数据:38,22,99,10,99,7, 25,,40
已过滤字符串:
最终数列: [38.0, 22.0, 99.0, 10.0, 99.0, 7.0, 25.0, 40.0]
均值:42.50
方差:1181.75
以下为解析:
平均值的思路就是总和除以列表长度,方差的思路就是把所有的(x-均值)²加起来,最后再除以一个长度即可。
本程序的优点:输入时逗号后出现空格与不小心多打逗号等情况都不会出问题,可以接受小数,可以先输出最终数列以供核对。
网页题目:包含python求差函数公式的词条
链接URL:http://scgulin.cn/article/hhjecd.html