我是靠谱客的博主 落后大象,最近开发中收集的这篇文章主要介绍Python小白的学习日志:实验数据处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在分析化学中,经常遇到实验数据处理的情况,一般比较多的就是计算平均值,相对标准偏差(RSD)以及置信区间。

在写置信区间部分的代码的时候,发现python的有个scipy库,scipy库中有很多特殊函数,都是超越函数,即变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。我这种数学菜鸟,看到scipy库中的函数都发毛,以后有机会慢慢学。

代码如下:

import math 
from scipy.stats import t           #scipy库中的t分布函数

def calasr(datastr):         #将输入的字符串转变为数值,并计算平均值,SD,RSD,返回一个列表
  alist=datastr.split('/')
  #print(alist)

  blist=[]
  for i in alist:
    floatval=float(i)
    blist=blist+[floatval]
  sum=0
  for each in blist:
      sum=sum+each
  average=sum/len(blist)
  fenmu=0
  for each in blist:
      fenmu=fenmu+(each-average)*(each-average)
  sd=math.sqrt(fenmu/(len(blist)-1))
  rsd=round(sd/average*100,4)
  resultlist=[average,sd,rsd]
  return resultlist

bool=True
while bool==True:
  data=input('请输入数据(用“/”隔开)[其他:1.含置信区间;2退出]:')
  if data=='2':
    bool=False
    print('程序运行完毕!')
  if data=='1':
    datat=input('请输入数据(用“/”隔开):')
    percent=input('请输入单侧检验的显著性水平:')
    percentval=float(percent)
    n=len(datat.split('/'))
    f=n-1
    fval=int(f)
    rlist=calasr(datat)
    t=t.isf(percentval,fval)        #查t分布表,percentval是单侧t检验的显著性水平,fval是自由度,注意在引入参数的时候,这两个值都必须是数值
    ux=t*rlist[1]/math.sqrt(f+1)   
    print('average=%f,SD=%.4e,RSD=%.4f%%,置信区间为%f±%f(t=%.4f)'%(rlist[0],rlist[1],rlist[2],rlist[0],ux,t))   #格式化输出,实在是很方便
  else:
    rlist=calasr(data)
    print('average=%f,SD=%.4e,RSD=%.4f%%'%(rlist[0],rlist[1],rlist[2]))

最后

以上就是落后大象为你收集整理的Python小白的学习日志:实验数据处理的全部内容,希望文章能够帮你解决Python小白的学习日志:实验数据处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部