程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python傳感器采集數據文件分析處理實驗源碼

編輯:Python

前些天發現了一個巨牛的人工智能學習電子書,通俗易懂,風趣幽默,無廣告,忍不住分享一下給大家。(點擊跳轉人工智能學習資料)


一、題目

附件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()

四、實驗結果


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved