Numpy 二進位制檔案儲存 (NPY, NPZ)
阿新 • • 發佈:2020-10-27
Numpy binary files (NPY, NPZ)
numpy.load和numpy.save函式
以NumPy專用的二進位制型別儲存資料,這兩個函式會自動處理元素型別和shape等資訊,使用它們讀寫陣列就方便多了,但是numpy.save輸出的檔案很難和其它語言編寫的程式讀。
使用時,陣列會以未壓縮的原始二進位制格式儲存在副檔名為.npy的檔案中。
import numpy as np # 將陣列以二進位制格式儲存到磁碟 arr=np.arange(5) np.save('test',arr) # 讀取陣列 print(np.load('test.npy'))
Note:
1. 檔案要儲存為.npy檔案型別,否則會出錯
2. 儲存為numpy專用二進位制格式後,就不能用notepad++開啟(亂碼)看了,這是相對tofile內建函式不好的一點
numpy.savez函式
如果你想將多個數組儲存到一個檔案中的話,可以使用numpy.savez函式。
savez函式的第一個引數是檔名,其後的引數都是需要儲存的陣列,也可以使用關鍵字引數為陣列起一個名字,非關鍵字引數傳遞的陣列會自動起名為arr_0, arr_1, ...。
savez函式輸出的是一個壓縮檔案(副檔名為npz),其中每個檔案都是一個save函式儲存的npy檔案,檔名對應於陣列名。
load函式自動識別npz檔案,並且返回一個類似於字典的物件,可以通過陣列名作為關鍵字獲取陣列的內容:
import numpy as np # 將多個數組儲存到磁碟 a = np.arange(5) b = np.arange(6) c = np.arange(7) np.savez('test', a, b, c_array=c) # c_array是陣列c的命名 # 讀取陣列 data = np.load('test.npz') #類似於字典{‘arr_0’:a,’arr_1’:b,’c_array’:c} print('arr_0 : ', data['arr_0']) print('arr_1 : ', data['arr_1']) print('c_array : ', data['c_array']) -------------------------------------------------------------------------------- arr_0 : [0 1 2 3 4] arr_1 : [0 1 2 3 4 5] c_array : [0 1 2 3 4 5 6]