python : 將txt文件中的數據讀為numpy數組或列表


很多時候,我們將數據存在txt或者csv格式的文件里,最后再用python讀取出來,存到數組或者列表里,再做相應計算。本文首先介紹寫入txt的方法,再根據不同的需求(存為數組還是list),介紹從txt讀取浮點數的方法。

一、寫入浮點數到txt文件:

假設每次有兩個浮點數需要寫入txt文件,這里提供用with關鍵字打開文件的方法,使用with打開文件是一個很好的習慣,因為with結束,它就會自動close file,不用手動再去flie.close()。

with open('file_path/filename.txt','a') as file:
write_str = '%f %f\n'%(float_data1,float_data2)
file.write(write_str)

二、從txt文件提取浮點數到numpy數組或list列表
首先假設你有一個odom.txt 的文件,里面每一行的數據個數都相同,如截圖所示:


1.如果你是想把這些數據讀取出來,存為numpy數組,那么一句代碼可以搞定:

a = numpy.loadtxt('odom.txt')
存為numpy數組以后,a的尺寸可以用a.shape進行查看,這里應為:(14,2)也就是14行2列。如果你覺得這個形狀不是你期待的,你可以用:

b = numpy.reshape(a,(你想要的形狀))

b = numpy.reshape(a,(-1,1,2))
那么b就是一個三維數組了(14,1,2)
2.如果只是想讀出來,存到一個list里,那就用下面的常用python格式了:

with open('odom.txt', 'r') as f:
data = f.readlines() #txt中所有字符串讀入data

for line in data:
odom = line.split() #將單個數據分隔開存好
numbers_float = map(float, odom) #轉化為浮點數
print numbers_float

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM