我已經找遍了這個答案,但沒有什麼真的似乎適合該法案。我正在嘗試使用ATpy讀取非常大的文件,數據以numpy數組的形式出現。對於較小的文件下面的代碼已經足夠:用ATpy和numpy高效讀取大文件?
sat = atpy.Table('satellite_data.tbl')
從那裏我建立了一些,我有後來操縱用於繪圖的目的變量。這是很多這些類型的操作的:
w1 = np.array([sat['w1_column']])
w2 = np.array([sat['w2_column']])
w3 = np.array([sat['w3_column']])
colorw1w2 = w1 - w2 #just subtracting w2 values from w1 values for each element
colorw1w3 = w1 - w3
等
但對於非常大的文件的計算機無法處理它。我認爲所有的數據都是在解析開始之前存儲在內存中的,對於2GB文件來說這是不可行的。那麼,我可以用什麼來處理這些大文件?
我見過大量的帖子,人們將數據分成塊,並使用for
循環遍歷每一行,但我認爲這對我來說並不適用,因爲這些文件的性質,以及我需要在這些陣列上執行的操作種類。我不能只對文件的每一行執行一次操作,因爲每行都包含許多分配給列的參數,在某些情況下,我需要對來自單個列的數據執行多個操作。
老實說,我並不真正瞭解ATpy和numpy幕後的一切。我對Python很陌生,所以我很欣賞那些明確表達出來的答案(即不依賴於大量的隱含編碼知識)。必須有一個乾淨的解析方式,但我沒有找到它。謝謝。
什麼是輸入文件的格式?他們是平面二進制文件嗎? –