怎么用python编写程序计算标准差_自学生信Python(第五天)|如何计算标准差?...

如何计算标准差?

本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪)。了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言、Python、Perl等,还要熟悉Linux系统,作为生信小白,听说Python挺简单的,于是就自学了Python,花了两天时间了解了Python的基础语法后,今天想做个练习题试试手(实践是检验真理的唯一标准),下面是练习题:(试题来源:《PYTHON生物信息学数据管理》)

今日练习题:如何计算标准差?

计算标准差有些复杂,因为需要 for 循环来计算每个值的平方差,必须先有预先计算出 的平均值。

然后将每个值减去平均值((value-average) * *2)。 所有平方差要加在一起,除以结果的数量,最后计算结果的平方根。平方差求和可以设置一个变量为 0.0,每得到一个平方差就加上去。

公式如下:

书中给出的计算的脚本是:

import math

data = [3.53,3.47,3.51,3.72,3.43]

average = sum(data)/len(data)

total = 0.0

for value in data:

total += (value - average)**2

stddev = math.sqrt(total/len(data))

print(stddev)

参照书中给出的答案,结合前面所用到的input()函数,对这个计算标准差的脚本进行升级。至于怎么升级,答案肯定是增加用户输入。此次升级脚本的意义和难度都不大,完全是为了巩固一下前面所学的知识(PS:主要是已经学会了input()函数,要不然还是有点难度的,毕竟是会了不难,难了不会!)

话不多说,上手最重要,下面进行分步解析。

第一步:导入模块

这里涉及计算,肯定是首先导入math模块喽!

import math

导入成功,万里长征第一步完成。

第二步:获取用户输入

①首先定义数据变量列表

data=[]

②获取用户输入,为了区分不同的数值,两个数据之间以“,”分割,这里使用split(',')。(split(',')在[自学生信Python(第四天)]https://www.jianshu.com/p/d7ebffdfcbe0已经讲过,这里就直接使用了。)

data1 = input("请输入数值:",).split(',')

③将用户输入的字符串转化为数值

i=0

for i in range(0,len(data1)):

data.append(eval(data1[i]))

i=i+1

**第三步:计算公式

观察公式可以知道,首先我们需要求出输入的数据的平均值(平均值计算参考https://www.jianshu.com/p/d7ebffdfcbe0)

然后计算每个数和平均值差的平方,然后求和,再求其平均值,最后再求其平方根。

①先求平均值

average = sum(data)/len(data)

②求每个数和平均值差的平方,并求和

total = 0.0

for value in data:

total += (value - average)**2

③求上述和的平均值,然后求其结果的平方根

stddev = math.sqrt(total/len(data))

**第四步:输出结果

print(stddev)

综上所述,将结果汇总,其完整代码如下:

import math

data=[]

i = 0

data1 = input("请输入数值:",).split(',')

for i in range(0,len(data1)):

data.append(eval(data1[i]))

i=i+1

average = sum(data)/len(data)

total = 0.0

for value in data:

total += (value - average)**2

stddev = math.sqrt(total/len(data))

print(stddev)

使用简单的几行代码,实现获取用户输入,并计算出用户输出的结果。感兴趣的蛇友们,还可以加入异常判断,如果用户输入的不是数字而是别的什么,实现也能使程序运行不报错,而且能提醒用户重新输入数据的功能。

虽然这是个小小的计算程序,但对于初学者的我来说每一次对原代码的升级改造,哪怕是读懂后的注释都感觉是一次进步提升,总之代码虽小,动手最重要!希望更多学习Python的爱好者不要像我一样眼高手低,学习编程就是要,思考,敲码,思考,敲码,敲码,再敲码!

你可能感兴趣的:(怎么用python编写程序计算标准差_自学生信Python(第五天)|如何计算标准差?...)