利用陣列的的檔案輸入輸出
阿新 • • 發佈:2018-11-19
利用陣列的檔案輸入輸出
1. 將陣列以二進位制格式儲存到磁碟
np.save和np.load是讀寫磁碟陣列資料的兩個主要函式。預設情況下,陣列是以未壓縮的原始二進位制格式儲存在副檔名為.npy的檔案中的。
import numpy as np arr=np.arange(10) np.save('some_array',arr)
如果檔案路徑末尾沒有副檔名.npy,則該副檔名會自動加上。然後就可以通過np.load讀取磁碟上陣列:
print(np.load('some_array.npy')) #輸出[0 1 2 3 4 5 6 7 8 9]
為了方便看到檔案生成所以使用的是pycharm編寫,需要注意的是使用np.load傳入的檔名必須帶字尾.npy;通過np.savez可以將多個數組儲存到一個壓縮檔案中,將陣列以關鍵字引數的形式傳入即可。
np.savez('array_archive.npz',a=arr,b=arr)
載入.npz檔案時,會得到一個類似字典的物件,該物件將各個陣列進行延遲載入:
arch=np.load('array_archive.npz') print(arch['b']) #結果[0 1 2 3 4 5 6 7 8 9]
2.存取文字檔案
從檔案中載入文字是一個非常標準的任務。我們需要用np.loadtxt或更專門化的np.genfromtxt將資料載入到普通的numpy陣列中。
這些函式都有許多選項可以使用:指定各種分隔符、針對特定列的轉換器函式、需要跳過的行數等。
arr=np.array([[1,2,3],[2,3,4],[3,4,5]]) np.savetxt('array_ex.txt',X=arr,delimiter=',')
將會生成一個文字array_ex.txt檔案,相反執行np.loadtxt可以能讀取文字
print(np.loadtxt('array_ex.txt',delimiter=',')) #返回結果: [[1. 2. 3.] [2. 3. 4.] [3. 4. 5.]]