一个利用h5py保存hdf文件的例子,留存!

本文介绍了一种使用Python中的Numpy库定义复杂数据类型的方法,并利用HDF5格式高效存储大量交易记录数据的具体实现过程。文中通过创建自定义的数据类型来组织包含股票代码、交易时间、价格等在内的交易细节,并演示了如何将这些数据写入HDF5文件中。
import numpy as np  
import h5py as h5  
  
trans_detail_type = np.dtype([  
    ('stk_code','S8'),   
    ('trans_time','i4'),   
    ('price','i8'),   
    ('volumn','i8'),   
    ('buy_order_id', 'i8'),   
    ('sell_order_id', 'i8'),   
    ('b_s', 'c'),   
    ('trans_type', 'c')  
    ])  
  
recs = [  
    ('SZ000001', 112233156, 90100, 30000, 12345,67890, b'B', b'F'),  
    ('SZ000001', 112233256, 90100, 30000, 12345,67890, b'B', b'F'),  
    ('SZ000001', 112233356, 90100, 30000, 12345,67890, b'B', b'F'),  
    ('SZ000001', 112233456, 90100, 30000, 12345,67890, b'B', b'F'),  
    ]  
recs = np.array(recs, dtype=trans_detail_type)  
  
print(recs)  
  
f = h5.File('e:\\test.h5')  
  
g_cls = f.get('trans_detail', getclass=True)  
  
if g_cls is None or g_cls == 'default':  
    g = f.create_group('trans_detail')  
else:  
    g = f['trans_detail']  
  
ds_name = '20160929'  
ds_cls = g.get(ds_name, getclass=True)  
  
if ds_cls is None or ds_cls=='default':  
    pass  
else:  
    del g[ds_name]  
      
ds = g.create_dataset(ds_name, data=recs, compression='gzip', compression_opts=6, maxshape=(None,))  
  
  
f.close()  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值