python写入和读取h5、pkl、mat 文件

python写入和读取h5、pkl、mat 文件,第1张

python中使用h5py对HDF5文件进行 *** 作。

1、创建文件和数据

import h5py

import numpy as np

imgData = np.zeros((2,4))

f = h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是f

f['data'] = imgData #将数据写入文件的主键data下面

f['labels'] = np.array([1,2,3,4,5])#将数据写入文件的主键labels下面

f.close() #关闭文件

f = h5py.File('HDF5_FILE.h5','r') #打开h5文件

for key in f.keys():

print(f[key].name)

print(f[key].shape)

print(f[key].value)

输出结果:

/data

(2, 4)

[[ 0. 0. 0. 0.]

[ 0. 0. 0. 0.]]

/labels

(5,)

[1 2 3 4 5]

Process finished with exit code 0

写入读取pkl文件

1)字典基梁类型:

import pickle

dict_data={'name':["张三","李四"迅锋帆]}

with open("dict_data.pkl","wb") as fo:

pickle.dump(dict_data,fo)

with open("dict_data","rb") as fo:

dict_data=pickle.load(fo,encoding='bytes')

print(dict_data.keys())

print(dict_data)

print(dict_data["name"])

结果如下:

dict_keys(['name'])

{'name': ['张三', '李四']}

['张三', '李四']

2)列表类型

import pickle

list_data=["张三","李四"]

with open ("list_data","wb") as fo:

pickle.dump(list_data,fo)

with open("list_data","rb") as fo:

pickle.load(fo,encoding='bytes')

print(list_data)

print(list_data.keys())

pirnt(list_data["name"])

mat文件

mat数据格式是Matlab的数据存储的标准格式。在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件。对于文件data.mat:

load(‘data.mat')

save('data_1.mat','A')

其中'A’表示要保存的内容。

在python读取mat文件:

1、读取文件:

import scipy.io as scio

file1='E://data.mat'

data=scio.loadmat(file1)

注意,读取出来的data是字典格式,可以通过函数type(data)查看。亩雹

print type(data)

结果显示

<type 'dict'>

找到mat文件中的矩阵:

print data['A']

结果显示

"""

Created on Sun Nov 29 16:40:18 2020

本工具主要用于mat文件的读取(matlab-v7.3格式)

主要分为3个部分:1 常规培颂mat中的变量

                2 mat文件中的cell内部数据读取

                3 mat文件中的struct数据读取

@author: ZXY

"""

""大蚂"

1 常规mat中的变量

"""

import h5py

b=[]

#首先用h5py读取mat文件,并找到对应的struct 位置。

data = h5py.File("./1.mat",'r')

ecg=data["ecg"].value

"""

2 mat文件中的cell内部数据读取

"""

import h5py

b=[]

#首先用h5py读取mat文件,并找到对应的struct 位置。

data = h5py.File("./2.mat",'r')

zx1=data["滚中埋ecg_all"]#找到struct的顶部

for i in range(zx1.shape[0]):

    ecg=data[zx1[i][0]].value

"""

3 mat文件中的struct数据读取

"""

import h5py

b=[]

#首先用h5py读取mat文件,并找到对应的struct 位置。

data = h5py.File("./3.mat",'r')

zx1=data["ecgpart"]#找到struct的顶部

test = data['ecgpart/data']#找到struct中要提取的子集

for i in test[:,0]: 

        ecg=zx1[i].value

若并派文件位于同一文件夹下的data文件夹盯蔽敬凯慎中data.mat

import scipy.io as scio

import pandas as pd

data = scio.loadmat('./data/data.mat')

df=pd.DataFrame(['dat'])


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

原文地址: http://outofmemory.cn/tougao/12265865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存