牛骨文教育服务平台(让学习变的简单)
博文笔记

Python数据存储之 h5py

创建时间:2017-08-29 投稿人: 浏览次数:2450

1、Python数据存储(压缩)

(1)numpy.save , numpy.savez , scipy.io.savemat
numpy和scipy内建的数据存储方式。
(2)cPickle + gzip
cPickle是pickle内建的数据存储方式,gzip是常用的文件压缩模块。
(3)h5py
h5py是对HDF5文件格式进行读写的python包,关于h5py更多介绍与安装,参考官方网站
关于HDF5,参考官方网站。:

一个HDF5文件就是一个由两种基本数据对象(groups and datasets)存放多种科学数据的容器:

  HDF5 dataset: 数据元素的一个多维数组以及支持元数据(metadata);
  HDF5 group: 包含0个或多个HDF5对象以及支持元数据(metadata)的一个群组结构;

总之,dataset是类似于数组的数据集,而group是类似文件夹一样的容器,存放dataset和其他group;group和dataset在h5py中的使用有点类似于词典和Numpy中数组的用法。

h5py的优势:速度快、压缩效率高,总之,numpy.savez和cPickle存储work或不work的都可以试一试h5py!

2、h5py读取和存储数据示例

import h5py
X= np.random.rand(100, 1000, 1000).astype("float32")
y = np.random.rand(1, 1000, 1000).astype("float32")

# Create a new file
f = h5py.File("data.h5", "w")
f.create_dataset("X_train", data=X)
f.create_dataset("y_train", data=y)
f.close()

# Load hdf5 dataset
f = h5py.File("data.h5", "r")
X = f["X_train"]
Y = f["y_train"]
f.close()

详细使用方法,参考官网。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。