【競賽相關】特征/模型存儲的5種方法
Hello大家好,我是Coggle菌。今天我將繼續(xù)和大家一起學習競賽中的各種基礎知識點,從基礎庫使用到具體的比賽案例。
今天將介紹的比賽中存儲特征的幾種方法,供大家學習和選擇。
方法1:csv/txt
存儲為csv、text或者json是最為簡單的存儲格式,閱讀和解析起來非常方便。
如果使用Pandas則可以在存儲的過程中設置壓縮方法,對磁盤比較友好。
場景:通用 數(shù)據(jù):表格、文本 文件大?。簤嚎s后較少 讀取速度:較慢
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)是能滿足各種領域研究需求而研制的一種能高效存儲和分發(fā)科學數(shù)據(jù)的新型數(shù)據(jù)格式。
HDF格式支持分層存儲,可以將多個變量同時存在一個HDF文件中,同時在讀取速度上也比較快。
場景:通用 數(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格式,則可以考慮存儲為Numpy中的npy或npz格式。
場景:文件存儲 數(shù)據(jù):矩陣 文件大?。哼m中 讀取速度:較快
1. npy文件:二進制格式
np.load()和np.save()是讀寫磁盤數(shù)組數(shù)據(jù)的兩個重要函數(shù)。使用時數(shù)組會以未壓縮的原始二進制格式保存在擴展名為.npy的文件中。
import?numpy?as?np
arr=np.arange(5)
np.save('test',arr)
print(np.load('test.npy'))
npz文件:壓縮文件
使用np.savez()函數(shù)可以將多個數(shù)組保存到同一個文件中。讀取.npz文件時使用np.load()函數(shù),返回的是一個類似于字典的對象,因此可以通過數(shù)組名作為關鍵字對多個數(shù)組進行訪問。
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實現(xiàn)了一個類似于ndarray的memmap對象,它允許將大文件分成小段進行讀寫,而不是一次性將整個數(shù)組讀入內(nèi)存。
如果需要存儲的對象大于內(nèi)存,則可以選擇memmap進行存儲。
場景:大文件存儲 數(shù)據(jù):矩陣 文件大?。狠^大、特別大 讀取速度:適中
newfp?=?np.memmap(filename,?dtype='float32',?mode='r',?shape=(3,4))
fpc[0,:]?=?0
方法5:joblib
類似于pkl存儲,joblib.dump可以將任意的Python對象持久化到一個文件中,并使用joblib.load進行讀取。
場景:任意 數(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,加入微信群請掃碼:
評論
圖片
表情
