第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Numpy IO 操作

ndarray 對象可以保存到磁盤文件并從磁盤文件加載。常用的 IO 函數(shù)有:

  • load() 和 save() 函數(shù)是讀寫文件數(shù)組數(shù)據(jù)的兩個主要函數(shù),默認情況下,數(shù)組是以未壓縮的原始二進制格式保存在擴展名為 .npy 的文件中;
  • savez() 函數(shù)用于將多個數(shù)組寫入文件,默認情況下,數(shù)組是以未壓縮的原始二進制格式保存在擴展名為 .npz 的文件中;
  • loadtxt() 和 savetxt() 函數(shù)處理正常的文本文件(txt等文本文件);

1. npz文件的保存與讀取

1.1 numpy.save 函數(shù)

numpy.save() 函數(shù)將數(shù)組保存到以 .npy 為擴展名的文件中。函數(shù)原型如下:

numpy.save(file, arr, allow_pickle=True, fix_imports=True)

參數(shù)說明如下:

參數(shù) 說明
file 要保存的文件,擴展名為 .npy,如果文件路徑末尾沒有擴展名 .npy,該擴展名會被自動加上
arr 要保存的數(shù)組
allow_pickle 可選,布爾值,允許使用 Python pickles 保存對象數(shù)組,Python 中的 pickle 用于在保存到磁盤文件或從磁盤文件讀取之前,對對象進行序列化和反序列化。
fix_imports 可選,為了方便 Pyhton2 中讀取 Python3 保存的數(shù)據(jù)。

案例

定義數(shù)組:

a = np.array([1, 2, 3, 4, 5, 6]) 

將數(shù)組保存到 outfile_a.npy 文件上:

np.save('outfile_a.npy', a) 

如果你嘗試打開 outfile_a.npy 文件,你會發(fā)現(xiàn)文件是亂碼的,因為它們是 Numpy 專用的二進制格式后的數(shù)據(jù)。

1.2 numpy.savez 函數(shù)

numpy.savez 函數(shù)可以將多個數(shù)組保存到以 npz 為擴展名的文件中。函數(shù)原型如下是:

numpy.savez(file, *args, **kwds)

參數(shù)說明如下:

參數(shù) 說明
file 要保存的文件,擴展名為 .npy,如果文件路徑末尾沒有擴展名 .npy,該擴展名會被自動加上
args 要保存的數(shù)組
kwds 要保存的數(shù)組使用關(guān)鍵字名稱

案例

定義數(shù)組:

b = np.array([11, 22, 33, 44, 55, 66]) 
c = np.array([10, 20, 30, 40, 50, 60]) 

將數(shù)組 a、b、c 保存到 outfile_abc.npz 文件上:

np.savez('outfile_abc.npz', a, b, arr_1d = c)

1.3 numpy.load函數(shù)

numpy.load 函數(shù)可以加載 .npy 或 .npz 文件,將數(shù)組還原。

案例

從 outfile_a.npy 文件中還原數(shù)組 a:

a_re = np.load('outfile_a.npy')
print(a_re)

還原結(jié)果為:

[1 2 3 4 5 6]

案例

從 outfile_abc.npz 文件中還原數(shù)組 a、b、c:

abc_re = np.load('outfile_abc.npz')
print(abc_re)

打印還原結(jié)果為:

<numpy.lib.npyio.NpzFile at 0x1be73ece550>

NpzFile 是一個 Numpy 提供的類似字典的對象,可以通過鍵值對進行訪問:

print('NpzFile的對象名稱為:')
for name in abc_re.keys():
    print(name)

結(jié)果為:

NpzFile的對象名稱為:
arr_1d
arr_0
arr_1

可以看到 .npz 文件中保存了 3 個 key,其中 arr_1d 是自定義的,arr_0 和 arr_1 是程序默認的。可以詳細查看 key 對應(yīng)的 value:

print('arr_1d:', abc_re['arr_1d'])
print('arr_0:', abc_re['arr_0'])
print('arr_1:', abc_re['arr_1'])

結(jié)果為:

arr_1d: [10 20 30 40 50 60]
arr_0: [1 2 3 4 5 6]
arr_1: [11 22 33 44 55 66]

觀察發(fā)現(xiàn):arr_0 和 arr_1 分別對應(yīng) a 和 b。

2. 文本文件的保存與讀取

2.1 numpy.savetxt 函數(shù)

numpy.savetxt() 函數(shù)是以簡單的文本文件格式存儲數(shù)據(jù)。其函數(shù)原型為:

np.savetxt(file, arr, fmt="%d", delimiter=",")

參數(shù)說明如下:

參數(shù) 說明
file 要保存的文件
arr 要保存的數(shù)組
fmt 指定數(shù)組元素的保存格式
delimiter 指定每行元素之間的分隔符

案例

將二維數(shù)組保存為本文文件,數(shù)據(jù)存儲格式為整數(shù),分隔符為‘,’:

arr = np.arange(16).reshape(4,4)
np.savetxt('outfile_2d.txt', arr, fmt='%d', delimiter=',')

找到 outfile_2d.txt 文件,雙擊打開,結(jié)果為:

0,1,2,3
4,5,6,7
8,9,10,11
12,13,14,15

2.2numpy.loadtxt 函數(shù)

numpy.loadtxt() 函數(shù)是從文本文件中恢復(fù)數(shù)組數(shù)據(jù)。其函數(shù)原型為:

np.loadtxt(file, dtype=int, delimiter=' ')

參數(shù)說明如下:

參數(shù) 說明
file 要讀取的文件
dtype 指定數(shù)組元素的格式
delimiter 指定文本文件的分隔符

案例

從 outfile_2d.txt 文件中還原二維數(shù)組:

np.loadtxt('outfile_2d.txt', dtype=np.int32, delimiter=',')
out:
    array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])

3. 小結(jié)

本節(jié)講述了Numpy提供文件保存與讀取的常用操作。其中save()、savez()與load()是基于二進制文件的IO操作,savetxt()與loadtxt()是基于文本文件的IO操作,在使用過程中注意區(qū)分。