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

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

将数组或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,但是从上面的内容应该可以看出,它具有很大的灵活性。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5649413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存