前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料)
一、题目
附件sensor-data.txt是一个传感器采集数据文件,其中,每行是一个读数,空格分隔多个含义,分别包括日期、时间、温度、湿度、光照和电压。其中,光照处于第5列。请编写程序,统计并输出传感器采集数据中光照部分的最大值、最小值和平均值,所有值保留小数点后2位。
二、题目分析
打开txt文件可以发现,每行都有一串包含日期、时间、温度、湿度光照和电压的数据,用空格隔开,我们可以使用一个二维列表,每次读取一行,根据空格分开,存到一个一维列表中去,然后将一维列表放入二维列表。在遍历完文件之后,我们已经将数据全都存放到二维列表中去了,接下来就遍历这个二维列表,先定义一个max=0,min=10000,然后如果遍历的时候遇到比max的大的数,就更新max,如果遇到比min小的数,就更新min,另外我们用sum加上所有的数据,并且记录数据的个数,最后只需要输出max和min就可以得到最大值和最小值,输出sum/cnt就可以得到平均值,我们可以通过%.2f控制保留小数点后两位。最后记得要关闭文件!
其实本题还有一个做法就是,将这些列表数据通过numpy,然后通过numpy中的max,min和mean函数获取最大值最小值和平均值。
三、源码
list=[[]]
max =avg =cnt=0
min=10000
with open("sensor-data.txt","r")as file:for line in file.readlines():line=line.strip('\n')list.append(line.split(" "))
list.remove([])
for templist in list:print(type(templist))if max<float(templist[4]):max=float(templist[4])if min>float(templist[4]):min=float(templist[4])avg+=float(templist[4])cnt+=1
print(max)
print(min)
print("%.2f"%(avg/cnt))
file.close()
四、实验结果
Python已经成为最受欢迎的程序设计语言之一。自从2004年以后,python的使用率呈线性增长。Python 2于2000年10月16日发布,稳定版本是Python 2.7。Python 3于2008年12月3日发布,不完全兼容Python 2。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。