今天小編就爲大家分享一篇python將txt等文件中的數據讀爲numpy數組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
實際中,很多數據都是存爲txt文件、csv文件等,但是在程序中處理的時候numpy數組或列表是最方便的。本文簡單介紹讀入txt文件以及將之轉化爲numpy數組或列表的方法。
1 將txt文件讀爲list並轉化爲numpy數組
import numpy as np
file = open('filename.txt')
val_list = file.readlines()
lists =[]
for string in val_list:
string = string.split('\t',3)
lists.append(string[0:2]) #只取每個string的前兩項,得到的lists即爲所要的列表
a = np.array(lists) #將列表轉化爲numpy數組,
a= a.astype(int) #並設定類型爲intfile.close()
這種方法雖然代碼長一點,但是可以允許你的txt文件中每一個line中既包含數字項又包含字母項等,如果你的txt文件的每一個line中的每一項都是數字,則有一個更簡單的方法:
a = numpy.loadtxt('filename.txt')
這樣直接得到一個全爲數字的numpy數組。
2 split等方法的簡介
split函數通過指定分隔符對字符串進行分隔,如果參數num有值,則表示將字符串分隔爲num個字符串。語法格式:string.split(str = " " , num = x ),str爲分隔符,默認是所有的空字符,如空格、換行、製表符等。num爲子字符串個數。返回值爲分隔後的字符串列表。實列如上文中:
string = string.split('\t',3)
表示以\t爲分隔符,分成3個字符串。除了常用的split,還有一個常用的功能相關的函數strip(),它用於移除字符串頭尾指定的字符。它的語法格式:string.strip([char]),char爲
要移除的指定的字符,默認爲空格。返回值爲移除後的新字符串。實列如下:
str = "000111aaabbb111000"
print str.strip('0')
輸出爲:
111aaabbb111
以上這篇python將txt等文件中的數據讀爲numpy數組的方法就是小編分享給大家的全部內容了
寫到這裏,給大家推薦一個資源很全的python學習聚集地,點擊進入,這裏有資深程序員分享以前學習
心得,學習筆記,還有一線企業的工作經驗,且給大家精心整理一份python零基礎到項目實戰的資料,
每天給大家講解python最新的技術,前景,學習需要留言的小細節