栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将数组或DataFrame以及其他信息保存在文件中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将数组或DataFrame以及其他信息保存在文件中

有很多选择。我将只讨论HDF5,因为我有使用这种格式的经验。

优点 :便携式(可以在Python之外读取),本机压缩,内存不足功能,元数据支持。

缺点 :依赖于单个低级C API,可能会将数据损坏为单个文件,删除数据不会自动减小大小。

以我的经验,为了提高性能和可移植性,请 避免使用

pyTables
/
HDFStore
存储数字数据。您可以改用提供的直观界面
h5py

存储数组

import h5py, numpy as nparr = np.random.randint(0, 10, (1000, 1000))f = h5py.File('file.h5', 'w', libver='latest')  # use 'latest' for performancedset = f.create_dataset('array', shape=(1000, 1000), data=arr, chunks=(100, 100),  compression='gzip', compression_opts=9)

压缩和分块

有许多压缩选择,例如

blosc
lzf
分别是压缩和解压缩性能的好选择。注意
gzip
是本机的;HDF5安装默认不会附带其他压缩过滤器。

分块是另一种选择,当与您从内存中读取数据的方式保持一致时,可以显着提高性能。

添加一些属性

dset.attrs['Description'] = 'Some text snippet'dset.attrs['RowIndexArray'] = np.arange(1000)

储存字典

for k, v in d.items():    f.create_dataset('dictgroup/'+str(k), data=v)

内存不足访问

dictionary = f['dictgroup']res = dictionary['my_key']

没有什么替代品可以阅读

h5py

文档,该文档暴露了大多数C
API,但是从上面的内容应该可以看出,它具有很大的灵活性。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号