• python 较多数据时取均值追加到文件


    import re
    import sys
    import os
    import math
    from functools import reduce
    fileDir = "C:/Users/Administrator/Desktop/data/android/fps/"

    file = "s6.txt"
    front = 46
    stop = 100000
    back = 5

    output=sys.stdout
    def getData():
    cpuList = []
    rec = 0.0

    with open (fileDir+file,'r',encoding='UTF-8') as f:
    i = 0
    for line in f:
    if(i<front):#去掉头
    i = i+1
    continue
    if(i>stop):#终止取值
    break
    cpustr = line.split(' ')
    try:
    cpuFloat = float(cpustr[-1])
    rec = rec+cpuFloat
    cpuList.append(cpuFloat)
    except:
    print ("转换异常,所在文件行数 = ",len(cpuList)+front)
    if(back<=len(cpuList)):
    for icpuList in range(back):#去掉尾
    rec = rec-cpuList.pop()
    f.close()

    count = len(cpuList)
    if count ==0:
    print ("有效数据是0个")
    return

    print ('file=%s, 行数=%d, front=%d, back=%d'%(file,count,front,back))
    average = rec/count
    print ("期望 = ",average)

    variance = 0.0
    for index in range(count) :
    variance = variance+(cpuList[index]-average)**2
    print ("标准差 = ",variance/count)

    offset = math.sqrt(variance/count)*3.29#alpha=0.005时根据t分布得到3.29
    u1 = average - offset
    u2 = average +offset
    print ("区间 = [%f, %f]"%(u1,u2))
    cnt = 0
    index = 0
    rec = 0.0
    for index in range(count) :
    if(cpuList[index]>u1 and cpuList[index]<u2):
    cnt = cnt+1
    rec = rec+cpuList[index]
    print ("置信区间内的数据均值 = ",rec/cnt)
    outputfile=open('C:/Users/Administrator/Desktop/data/s6_value.txt','a')
    sys.stdout=outputfile
    print (file,' ', rec/cnt)
    print ("front=%d,stop=%d,back=%d"%(front,stop,back))
    print (" ")
    outputfile.close()
    sys.stdout=output

    if __name__ == '__main__':
    getData()

  • 相关阅读:
    01.html5+phonegap跨平台移动应用开发
    10个CSS简写/优化技巧
    JS高级学习历程-17
    JS高级学习历程-16
    算法详解之Tarjan
    分层图详解
    洛谷 题解 P1196 【[NOI2002]银河英雄传说】
    洛谷 题解 P1220 【关路灯 】
    洛谷 题解 P1352 【没有上司的舞会】
    二维前缀和详解
  • 原文地址:https://www.cnblogs.com/konkon/p/7680960.html
Copyright © 2020-2023  润新知