npy文件大小約爲5 GB,RAM大約爲5 GB,因此無法加載numpy陣列。如何加載一個npy文件並將其行添加到其他npy文件而不加載它將npy文件追加到兩個文件中具有相同列數的另一個npy文件
0
A
回答
0
npy文件是包含數據類型(元數據)和形狀的標題,後面是數據本身。
標題以'\n'
(換行符)字符結尾。因此,以追加模式打開第一個文件,然後在讀取模式下打開第二個文件,按readline()
跳過標題,然後將第二個文件的塊(使用read(size)
)複製到第一個文件。
剩下的只有一件事:更新標題中的形狀(長度)字段。在這裏它有點棘手,因爲如果這兩個文件的形狀爲(700,)
和(400,)
,則新形狀需要爲(1300,)
,但在標題中可能沒有空格。這取決於原始頁眉中有多少個填充字符 - 有時您會有空間,有時您不會。如果沒有空間,則需要將新標題寫入新文件,然後從兩個源文件複製數據。儘管如此,這不會花費太多內存或時間,只需要一點額外的磁盤空間。
你可以在這裏看到讀取和寫入npy文件的代碼:https://github.com/numpy/numpy/blob/master/numpy/lib/format.py - 有一些未公開的函數,你可能會發現你的任務有用。
相關問題
- 1. 將numpy memmap刷新到npy文件
- 2. 從npy文件加載稀疏數組
- 3. 從C++讀入npy文件
- 4. 加載.npy文件加載一個空數組
- 5. 在python3.4中加載.npy文件錯誤
- 6. 從Python中加載npy文件
- 7. 如何將兩個具有相同文件名的文件添加到一個zip存檔文件中?
- 8. 使用Spyder/Python打開.npy文件
- 9. 在python3中加載.npy文件時返回的函數
- 10. 將文本文件的內容追加到C++中的另一個文件中
- 11. 兩個具有相同obj文件
- 12. 追加一個文本文件到另一個在Java中
- 13. 將數據追加到同一個文本文件用java
- 14. 兩個文件具有相同的文件歷史記錄
- 15. 將文件傳遞給另一個具有相同JAR文件的機器
- 16. 如何將一個文件列從一個文件分到另一個文件中的同一列?
- 17. 將一個文件加載到另一個文件中
- 18. 從.npy文件讀取數組到Fortran 90
- 19. 追加兩個pdf文件
- 20. 在Python 3中加載Python 2 .npy文件時出錯
- 21. 複製文件並追加到另一個文件
- 22. 如何在Python中將文件擴展名(.npy改爲.csv)?
- 23. 將文件追加到一個文件中
- 24. 如何將文件從子文件夾移動到具有相同文件夾名稱的另一個位置
- 25. 將一個文件追加到另一個
- 26. Python:比較兩個文件夾並將具有相同名稱的文件從1個文件夾移動到另一個文件夾
- 27. 如何將列從一個文件附加到bash中的另一個文件?
- 28. 將文件從一個tar文件添加到另一個python文件中
- 29. 關於加載npy文件和調查裏面的內容
- 30. 從一個CSV文件添加列到另一個CSV文件
很好的解釋! :)如果你分享代碼,這也會有幫助!謝謝! –
我無法共享代碼,因爲我沒有它。你需要寫它。 –