程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用h5py在Python中对大数据进行分析工作的经验?

发布于2019-08-25 18:30     阅读(590)     评论(0)     点赞(4)     收藏(2)


我做了很多统计工作,并使用Python作为我的主要语言。我使用的一些数据集虽然可以占用20GB的内存,但这使得使用numpy,scipy和PyIMSL中的内存函数对它们进行操作几乎是不可能的。统计分析语言SAS在这里具有很大的优势,因为它可以对来自硬盘的数据进行操作而不是严格的内存处理。但是,我想避免在SAS中编写大量代码(出于各种原因),因此我试图确定我使用Python的选项(除了购买更多的硬件和内存)。

我应该澄清一下像map-reduce这样的方法对我的大部分工作都无济于事,因为我需要对完整的数据集进行操作(例如计算分位数或拟合逻辑回归模型)。

最近我开始玩h5py并认为这是我发现允许Python像SAS一样操作磁盘上的数据(通过hdf5文件),同时仍能利用numpy / scipy / matplotlib等的最佳选择。我想听听是否有人在类似设置中使用Python和h5py以及他们发现了什么。有没有人能够在迄今为止由SAS主导的“大数据”设置中使用Python?

编辑:购买更多硬件/内存当然可以提供帮助,但从IT角度来看,当Python(或R或MATLAB等)需要在内存中保存数据时,我很难将Python出售给需要分析大量数据集的组织。SAS继续在这里有一个强大的卖点,因为虽然基于磁盘的分析可能会更慢,但您可以放心地处理大量数据集。因此,我希望Stackoverflow可以帮助我弄清楚如何降低使用Python作为主流大数据分析语言的感知风险。


解决方案


我们将Python与h5py,numpy / scipy和boost :: python结合使用来进行数据分析。我们的典型数据集大小可达几百GB。

HDF5的优点:

  • 使用h5view应用程序,h5py / ipython和h5 *命令行工具可以方便地检查数据
  • API适用于不同的平台和语言
  • 使用组结构数据
  • 使用属性注释数据
  • 无忧内置数据压缩
  • 单个数据集上的io很快

HDF5陷阱:

  • 如果h5文件包含太多数据集/组(> 1000),则性能会中断,因为遍历它们非常慢。另一方面,io对于一些大数据集来说很快。
  • 高级数据查询(类似于SQL)实现起来很笨拙而且速度很慢(在这种情况下考虑SQLite)
  • HDF5在所有情况下都不是线程安全的:必须确保使用正确的选项编译库
  • 更改h5数据集(调整大小,删除等)会炸毁文件大小(在最好的情况下)或者是不可能的(在最坏的情况下)(必须复制整个h5文件以再次压平它)


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/59343/d1399e7735d63dfaf95a/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)