久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python 讀取txt,、csv、mat數據并載入到數組

 hdzgx 2019-12-24

一,、txt文件數據載入到數組

    這里結合上一篇博文的數據來講怎么方便的載入.txt文件到一個數組,,數據如下所示:

1、自己寫Python代碼實現txt文本數據讀取并載入成數組形式(PS:下面給了三種方法,,選擇理解)

# -*- coding: cp936 -*-import reimport linecacheimport numpy as npimport osfilename = 'preprocess1.txt'#數值文本文件轉換為雙列表形式[[...],[...],[...]],即動態(tài)二維數組#然后將雙列表形式通過numpy轉換為數組矩陣形式def txt_strtonum_feed(filename): data = [] with open(filename, 'r') as f:#with語句自動調用close()方法 line = f.readline() while line: eachline = line.split()###按行讀取文本文件,,每行數據以列表形式返回 read_data = [ float(x) for x in eachline[0:7] ] #TopN概率字符轉換為float型 lable = [ int(x) for x in eachline[-1] ]#lable轉換為int型 read_data.append(lable[0]) #read_data = list(map(float, eachline)) data.append(read_data) line = f.readline() return data #返回數據為雙列表形式#數值文本文件直接轉換為矩陣數組形式方法二def txt_to_matrix(filename): file=open(filename) lines=file.readlines() #print lines #['0.94\t0.81\t...0.62\t\n', ... ,'0.92\t0.86\t...0.62\t\n']形式 rows=len(lines)#文件行數 datamat=np.zeros((rows,8))#初始化矩陣 row=0 for line in lines: line=line.strip().split('\t')#strip()默認移除字符串首尾空格或換行符 datamat[row,:]=line[:] row+=1 return datamat#數值文本文件直接轉換為矩陣數組形式方法三def text_read(filename): # Try to read a txt file and return a matrix.Return [] if there was a mistake. try: file = open(filename,'r') except IOError: error = [] return error content = file.readlines() rows=len(content)#文件行數 datamat=np.zeros((rows,8))#初始化矩陣 row_count=0 for i in range(rows): content[i] = content[i].strip().split('\t') datamat[row_count,:] = content[i][:] row_count+=1 file.close() return datamatif __name__ == '__main__': test_content = txt_strtonum_feed('preprocess1.txt') content = np.array(test_content) print content #矩陣數組形式 print '\n' print test_content #二維列表 data = txt_to_matrix(filename) print data out = text_read('preprocess1.txt') print out

    代碼編譯所得結果如下圖所示(其中方法一思路是先得到動態(tài)二維數組,即二維列表的形式,,最后在mian函數里使用np.arry()函數將其轉換為數組形式,,這里將兩種形式結果都輸出):


2、調用numpy中loadtxt()函數快速實現,。(并且可以通過設定參數選取部分對應列數據載入數組,,具體詳細實踐可以參考以下博文地址:https://www.cnblogs.com/hecc/p/8480532.html,具體結果可以就不展示)

import numpy as npimport osdata1=np.loadtxt('preprocess1.txt',delimiter='\t') #delimiter參數依據原始文本數據每行數字之間符號,,這里為\tnp.savetxt('data3.txt',data1,fmt='%5.3f',delimiter='\t',newline=os.linesep) #將讀取的文件保存到另一文本

二,、CSV文件數據載入到數組

    在一些數據競賽里面碰到很多的數據都是.csv文件給出的,說明應用應該還是有一些廣泛,。首先這里csv文件編碼格式必須為UTF-8,,否則會報編碼錯誤信息。(txt轉csv文件流程:打開excel—>數據—>導入文本/csv—>編碼格式選擇UTF-8—>保存選擇csv格式),。csv文件打開如下所示:

    首先python內置了csv庫,,可以調用然后自己手動來寫操作的代碼,比較簡單的csv文件讀取載入到數組可以采用python的pandas庫中的read_csv()函數來讀取,。其中函數的具體參數很長,,在此忽略,詳細參考專業(yè)api文檔,。這里代碼實現及結果如下所示:

import numpy as npimport pandas as pdimport os#UTF-8編碼格式csv文件數據讀取df = pd.read_csv('preprocess.csv') #返回一個DataFrame的對象,這個是pandas的一個數據結構df.columns=['Col1','Col2','Col3','Col4','Col5','Col6','Col7','Col8']X = df[['Col1','Col2','Col3','Col4','Col5','Col6','Col7']] #抽取前七列作為訓練數據的各屬性值X = np.array(X)print Xy1 = df['Col8'] #最后一列作為每行對應的標簽label#Y = df['Col8'].map(lambda y1:float(y1.rstrip(';')))Y = np.array(y1) print Y

三,、mat文件數據載入到數組

    .mat文件是MATLAB存儲數據的標準格式,,很多的機器學習任務用.MAT來存出數據文件。python的scipy中有專門的函數來方便.mat的文件的載入和存儲,,具體函數如下所示,,實現就一行代碼這里就不展示了,可以自行參考其他資料,。

scipy.io.loadmat(file_name, mdict=None, appendmat=True, **kwargs) #載入MATLAB文件#保存一個帶有名稱和序列的字典到.mat文件中scipy.io.savemat(file_name, mdict, appendmat=True, format=’5’, long_field_names=False, do_compression=False, oned_as=’row’)

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多