Numpy 二進制文件存儲 (NPY, NPZ)


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]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM