1. 程式人生 > >利用數組的的文件輸入輸出

利用數組的的文件輸入輸出

etx 磁盤 關鍵字參數 通過 分隔符 使用 arr 存取 必須

利用數組的文件輸入輸出

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

利用數組的的文件輸入輸出