關於numpy.npz()的記錄

numpy.savez()可以保存多個數組到一個文件中,但是如果文件名重複則會覆蓋之前的內容。如果想對一個.npz文件追加內容,則需要改動源碼,把npyio.py中的savez_()函數中724行:
zipf = zipfile_factory(file, mode="w", compression=compression)
mode改成'a',使用savez()時必須傳入str文件名參數,不能使用open()對象,這與zipfile有關,即使open()對象的mode設置爲'ab',也會覆蓋壓縮文件之前的內容。
另外,savez()對傳入的每個**kwarg參數進行保存時,是逐個保存的,如果保存的對象是h5文件的內容,直接傳入h5的dataset對象就可以,不用索引到內存中,這樣可以避免一次把h5文件的內容全部讀入而導致內存泄漏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章