亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

提高速度numpy.loadtxt?

提高速度numpy.loadtxt?

慕容森 2021-11-23 16:57:32
我有數十萬個數據文本文件要閱讀。到目前為止,我每次運行代碼時都會從文本文件中導入數據。也許簡單的解決方案是簡單地將數據重新格式化為文件,以便更快地讀取。無論如何,現在我擁有的每個文本文件都如下所示:User: unknownTitle : OE1_CHANNEL1_20181204_103805_01Sample data     Wavelength  OE1_CHANNEL1    185.000000  27.291955186.000000  27.000877187.000000  25.792290188.000000  25.205620189.000000  24.711882...我讀取和導入txt文件的代碼是:# IMPORT DATApath = 'T2'if len(sys.argv) == 2:    path = sys.argv[1]files = os.listdir(path)trans_import = []for index, item in enumerate(files):    trans_import.append(np.loadtxt(path+'/'+files[1], dtype=float, skiprows=4, usecols=(0,1)))結果數組在變量資源管理器中查找為:{ndarray} = [[185. 27.291955]\n [186. 27.000877]\n ... ]我想知道,我怎樣才能加快這部分的速度?到目前為止,僅導入約 4k 文本文件所需的時間有點長。每個文本文件(譜)中有 841 行。我用這段代碼得到的輸出是 841 * 2 = 1682。顯然,它把 \n 當作一行......
查看完整描述

1 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

如果你有一個大文件而不是許多小文件,它可能會快得多。這通常更有效。此外,您可以通過numpy直接保存數組并加載該.npy文件而不是讀取大型文本文件來提高速度。不過我對最后一部分不太確定。與往常一樣,當時間很重要時,我會嘗試這兩個選項,然后衡量性能改進。

如果由于某種原因你真的不能只有一個大的文本文件/.npy文件,你也可以通過使用例如multiprocessing讓多個工作人員同時讀取文件來提高速度。然后你可以在最后將矩陣連接在一起。


不是你的主要問題,但因為它似乎是一個問題 - 你可以重寫文本文件以不包含那些額外的換行符,但我認為np.loadtxt不能忽略它們。pandas但是,如果您愿意使用,pandas.read_csvwithskip_blank_lines=True應該會為您處理。要從 a 中numpy.ndarray獲取 a pandas.DataFrame,只需執行dataframe.values


查看完整回答
反對 回復 2021-11-23
  • 1 回答
  • 0 關注
  • 459 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號