【发布时间】:2014-04-28 22:49:10
【问题描述】:
我有一个 Matlab(.mat,版本 >7.3)文件,其中包含一个结构(数据),该结构(数据)本身包含许多字段。每个字段都是一个单列数组。每个字段代表一个单独的传感器,数组是时间序列数据。我正在尝试在 Python 中打开此文件以进行更多分析。我正在使用 PyTables 读取以下数据:
import tables
impdat = tables.openFile('data_file.mat')
这会读入文件,我可以输入 fileObject 并使用以下方法获取每个字段的名称:
impdat.root.data.__members__
这会打印一个字段列表:
['rdg', 'freqlabels', 'freqbinsctr',... ]
现在,我想要一种方法来获取数据中的每个字段,并以字段名称作为键(如果它是字典)和相应的数组作为其值来创建一个 python 变量(可能是字典)。我可以通过这样做来查看数组的大小,例如:
impdat.root.data.rdg
返回这个:
/data/rdg (EArray(1, 1286920), zlib(3))
atom := Int32Atom(shape=(), dflt=0)
maindim := 0
flavor := 'numpy'
byteorder := 'little'
chunkshape := (1, 16290)
我的问题是如何访问存储在该大数组 (1, 1286920) 中的一些数据。如何将该数组读入另一个 Python 变量(列表、字典、numpy 数组等)?任何想法或指导将不胜感激。
【问题讨论】:
标签: python arrays database matlab