为什么使用hdf5存取文件,速度却比使用csv存取文件的速度还慢?

数据集大小:
(200000* 9* 22+200000* 10* 11)* 36+(250000* 9* 22+250000* 10*11)*3
个数值
最初是用csv存这些数的,存的过程耗费将近整整一天,还是在服务器和台式机同时在跑的情况下存的,在取数据的时候数据也迟迟取不出来。
看别人存这个数据量的时候最多只用了几十秒,百思不得其解为啥我的程序跑得这么慢
为了改变存取数据太慢的情况,我改用hdf5来存取数据。按照常理,hdf5在这么大的数据量中应该表现得比csv好很多,然而结果却是hdf5存取相同数据所花费的时间差不多是csv的1.6倍。
hdf5的表现
相同配置存储相同数据csv的表现
这是为什么?
经过一番搜索+提问,我有了答案:
1、单精度浮点数比双精度浮点数要省时间和空间
2、hdf5存储数值数据比较有效,字符型数据是hdf5的弱点
3、如果数据结构是大量的小数组,是有可能出现hdf5存数据速度比csv慢的(此处感谢@专注算法的马里奥学长的回答

我的数据类型是<class ‘MDSplus.mdsarray.Float64Array’>,双精度浮点数数组,在用hdf5存取的时候很占时间和空间。
我把数据改成单精度浮点数,存取速度一下子快了几百倍,hdf5也比csv快了
修改后的hdf5的表现
修改后的csv的表现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值