NumPy能夠以文本或二進(jìn)制格式保存數(shù)據(jù)和讀取數(shù)據(jù)。這里只討論NumPy的內(nèi)置二進(jìn)制格式虚吟,因?yàn)榇蠖鄶?shù)用戶都會(huì)使用panda和其他工具加載文本或表格數(shù)據(jù)。np.save
和np.load
可以有效的存儲(chǔ)和加載磁盤上的數(shù)組數(shù)據(jù)。數(shù)組默認(rèn)保存在未壓縮的原始二進(jìn)制文件中锭吨,其文件擴(kuò)展名.npy:
In [1]: import numpy as np
In [2]: arr = np.arange(10)
In [3]: np.save('some_array',arr) #保存
這時(shí)你退出ipython(使用exit()退出),用ls查看當(dāng)前目錄里的文件辛孵,會(huì)發(fā)現(xiàn)多了一個(gè)叫“some_array.npy”的文件厨疙,就是你剛剛保存的數(shù)組:
$ ls
some_array.npy
再次進(jìn)入ipython,讀取數(shù)組:
In [4]: np.load('some_array.npy') #讀取
Out[4]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
如果你想保存一個(gè)以上的數(shù)組怎么辦轩娶?
In [1]: import numpy as np
In [2]: arr = np.arange(10)
In [3]: arr #第一個(gè)數(shù)組
Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [4]: arr2 = np.arange(15)
In [5]: arr2 #第二個(gè)數(shù)組
Out[5]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
In [6]: np.savez('array_archive.npz',a=arr, b=arr2) #把兩個(gè)數(shù)組保存到同一個(gè)文件里儿奶。這里是保存沒(méi)有壓縮的文件
In [7]: arch = np.load('array_archive.npz') #調(diào)取文件
In [8]: arch['a'] #查看a數(shù)組
Out[8]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [9]: arch['b'] #查看b數(shù)組
Out[9]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
如果你想把文件進(jìn)行壓縮,你可以使用下面的方法鳄抒,調(diào)取文件的方法是一樣的闯捎,只是保存的方法不一樣:
In [15]: np.savez_compressed('arrays_compressed.npz', a=arr, b=arr2)
In [16]: arch =np.load('arrays_compressed.npz')
In [17]: arch['a']
Out[17]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [18]: arch['b']
Out[18]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])