python求方差函数 python方差函数封装并命名

在Python库中的static模块用什么函数可以求数据的样本方差

自定义函数求解即可,参考代码如下:

创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,遂宁托管服务器,海外高防服务器,服务器机柜,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。

def f_sigma(x):

# 通过Python定义一个计算变量波动率的函数

# x:代表变量的样本值,可以用列表的数据结构输入

n = len(x)

u_mean = sum(x)/n #计算变量样本值的均值

z = [] #生成一个空列表

for t in range(n):

z.append((x[t]-u_mean)**2)

return (sum(z)/(n-1))**0.5 # n-1 自由度

a = f_sigma(x = [1,2,3])

print('样本方差:', a)

Python3 for循环求方差函数问题

def get_fanc(a):

b,c,d=0,0,0

print(type(a))

e=len(a)

f=sum(a)

b=f/e

for i in a:

c=c+(i-b)

c=c/b

return c

test = [1,2,3]

print(get_fanc(test))

我这边测试表示没有问题

用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求方差函数 python方差函数封装并命名
标题来源:https://www.cdcxhl.com/article28/dochgcp.html

成都网站建设公司_创新互联,为您提供网站收录定制开发网站营销外贸网站建设标签优化网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营