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]