1. 程式人生 > >利用陣列的的檔案輸入輸出

利用陣列的的檔案輸入輸出

利用陣列的檔案輸入輸出

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.]]