-
一維及二維數據的存取
CSV(Comma-Separated Value,逗號分隔值)
CSV是一種常見的文件格式,用來存儲批量數據。
-
將數據寫入CSV文件:
np.savetxt(file,array,fmt='%.18',delimiter=None)
說明:
file:文件,字符串或產生器,可以是.gz或.bz2的壓縮文件
array:存入文件的數組
fmt:寫入文件的格式
delimiter:分割字符串,默認是任何空格
例:
a = np.arrage(100).reshape(5,20) np. savetxt('a.csv',a,fmt='%d',delimiter=',')
將會得到一個文件名為a.csv,使用文本文檔打開如下
如果由%d改為%.1f則會按照格式存入
-
將數據讀取CSV文件:
np.loadtxt(file,dtype=np.float,delimiter=None,unpack=False)
說明:
file:文件,字符串或產生器,可以是.gz或.bz2的壓縮文件
dtype:可選,如果選擇int,則生成的數據(array)全部使用int類型,如果選擇float則新生成的數據包含小數
delimiter同上
unpack:如果為Ture,讀入屬性將分別寫入不同變量
CSV的局限性:
CSV只能存儲一維和二維數組
-
多維數據的存取
-
存數據(因為是二進制無法認為讀取):
a.tofile(file,sep='',format='%s')
說明:
sep:數據分割字符串,如果是空串,寫入文件為二進制
format:寫入數據的格式
如果按照規則生成文件並使用文本文檔打開將會發現是二進制文件
-
讀數據(與tofile搭配使用):
np.fromfile(file,dtype=float,count=-1,sep='')
說明:
count:表示讀取元素的個數,-1表示讀取整個文件
以上的多維數據存儲方法讀取時需要知道存入文件時數組的維度和元素類型
為了方便,一般將維度數據存入另一個文件
例:
import numpy as np a = np.arange(100).reshape(5,10,2) a.tofile('b.dat',sep=",",format='%d') c = np.fromfile('b.dat',dtype=np.int,sep=",") print(c)#輸出的只是一維的一組數據 c = np.fromfile("b.dat",dtype=np.int,sep=",").reshape(5,10,2) print(c)#輸出的是剛剛那組一維數據的多維構成
-
便捷文件存取
np.save(file,arr)
np.load(file)
操作的是.npy類型的文件