【競(jìng)賽相關(guān)】特征/模型存儲(chǔ)的5種方法
Hello大家好,我是Coggle菌。今天我將繼續(xù)和大家一起學(xué)習(xí)競(jìng)賽中的各種基礎(chǔ)知識(shí)點(diǎn),從基礎(chǔ)庫(kù)使用到具體的比賽案例。
今天將介紹的比賽中存儲(chǔ)特征的幾種方法,供大家學(xué)習(xí)和選擇。
方法1:csv/txt
存儲(chǔ)為csv、text或者json是最為簡(jiǎn)單的存儲(chǔ)格式,閱讀和解析起來(lái)非常方便。
如果使用Pandas則可以在存儲(chǔ)的過(guò)程中設(shè)置壓縮方法,對(duì)磁盤(pán)比較友好。
場(chǎng)景:通用 數(shù)據(jù):表格、文本 文件大小:壓縮后較少 讀取速度:較慢
compression_opts?=?dict(method='zip',
????????????????????????archive_name='out.csv')??
df.to_csv('out.zip',?index=False,
??????????compression=compression_opts)?
方法2:hdf
HDF(Hierarchical Data File)是能滿(mǎn)足各種領(lǐng)域研究需求而研制的一種能高效存儲(chǔ)和分發(fā)科學(xué)數(shù)據(jù)的新型數(shù)據(jù)格式。
HDF格式支持分層存儲(chǔ),可以將多個(gè)變量同時(shí)存在一個(gè)HDF文件中,同時(shí)在讀取速度上也比較快。
場(chǎng)景:通用 數(shù)據(jù):表格、文本 文件大小:較大 讀取速度:較快
df?=?pd.DataFrame({'A':?[1,?2,?3],?'B':?[4,?5,?6]},
??????????????????index=['a',?'b',?'c'])
df.to_hdf('data.h5',?key='df',?mode='w')
方法3:npy
如果將特征和數(shù)據(jù)處理為Numpy格式,則可以考慮存儲(chǔ)為Numpy中的npy或npz格式。
場(chǎng)景:文件存儲(chǔ) 數(shù)據(jù):矩陣 文件大小:適中 讀取速度:較快
1. npy文件:二進(jìn)制格式
np.load()和np.save()是讀寫(xiě)磁盤(pán)數(shù)組數(shù)據(jù)的兩個(gè)重要函數(shù)。使用時(shí)數(shù)組會(huì)以未壓縮的原始二進(jìn)制格式保存在擴(kuò)展名為.npy的文件中。
import?numpy?as?np
arr=np.arange(5)
np.save('test',arr)
print(np.load('test.npy'))
npz文件:壓縮文件
使用np.savez()函數(shù)可以將多個(gè)數(shù)組保存到同一個(gè)文件中。讀取.npz文件時(shí)使用np.load()函數(shù),返回的是一個(gè)類(lèi)似于字典的對(duì)象,因此可以通過(guò)數(shù)組名作為關(guān)鍵字對(duì)多個(gè)數(shù)組進(jìn)行訪(fǎng)問(wèn)。
import?numpy?as?np
a?=?np.arange(5)
b?=?np.arange(6)
c?=?np.arange(7)
np.savez('test',?a,?b,?c_array=c)??#?c_array是數(shù)組c的命名
data?=?np.load('test.npz')
print('arr_0?:?',?data['arr_0'])
print('arr_1?:?',?data['arr_1'])
print('c_array?:?',?data['c_array'])
方法4:memmap
NumPy實(shí)現(xiàn)了一個(gè)類(lèi)似于ndarray的memmap對(duì)象,它允許將大文件分成小段進(jìn)行讀寫(xiě),而不是一次性將整個(gè)數(shù)組讀入內(nèi)存。
如果需要存儲(chǔ)的對(duì)象大于內(nèi)存,則可以選擇memmap進(jìn)行存儲(chǔ)。
場(chǎng)景:大文件存儲(chǔ) 數(shù)據(jù):矩陣 文件大小:較大、特別大 讀取速度:適中
newfp?=?np.memmap(filename,?dtype='float32',?mode='r',?shape=(3,4))
fpc[0,:]?=?0
方法5:joblib
類(lèi)似于pkl存儲(chǔ),joblib.dump可以將任意的Python對(duì)象持久化到一個(gè)文件中,并使用joblib.load進(jìn)行讀取。
場(chǎng)景:任意 數(shù)據(jù):任意 文件大小:適中 讀取速度:適中
from?joblib?import?load,?dump
X?=?[[0,?0],?[1,?1]]
Y?=?[1,?0]
dump((X,?Y),?"data.pkl")
X,?Y?=?load("data.pkl")
往期精彩回顧 本站qq群554839127,加入微信群請(qǐng)掃碼:
