Python数据存储之 h5py详解

yipeiwu_com5年前Python基础

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()

详细使用方法,参考官网

以上这篇Python数据存储之 h5py详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器

浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器

1.iterable iterator区别 要了解两者区别,先要了解一下迭代器协议: 迭代器协议是指:对象需要提供__next__()方法,它返回迭代中的元素,在没有更多元素后,抛出St...

python实现BackPropagation算法

实现神经网络的权重和偏置更新,很重要的一部就是使用BackPropagation(反向传播)算法。具体来说,反向传播算法就是用误差的反向传播来计算w(权重)和b(偏置)相对于目标函数的导...

pandas对指定列进行填充的方法

实例如下所示: >>> import pandas as pd >>> import numpy as np >>> ts1 =...

如何用Python来理一理红楼梦里的那些关系

如何用Python来理一理红楼梦里的那些关系

前言 今天,一起用 Python 来理一理红楼梦里的那些关系 不要问我为啥是红楼梦,而不是水浒三国或西游,因为我也鉴定的认为,红楼才是无可争议的中国古典小说只巅峰,且不接受反驳!而红楼...

定制FileField中的上传文件名称实例

FileField中的upload_to属性可以设定上传文件的存储目录和名称,它可以是个字符串,也可以是个callable,比如一个方法。 当upload_to的值设为一个方法时,就可以...