0

当我使用 scipy.io.loadmat 加载 .mat 文件时,我得到一个难以处理的数据结构,因为我必须猜测数据包含在结构的哪个级别。numpy 或 scipy 表示将所有内容包装在深层列表中。打印它通常没有帮助,因为它包含大量数据。例如:

from scipy.io import loadmat
mat = loadmat("data.mat")
val = mat["someattribute"] # not what I want, the data I can iterate over is one layer deeper (len(val) == 1)
val = mat["someattribute"][0] # len(val) is some big value

有没有一些简单的方法可以访问这些东西而不必担心它们的表示?我最近从 python 2.6.6 切换到 2.7.3 并注意到 numpy/scipy 库中的表示发生了变化(因此我的代码中断了)。

4

1 回答 1

0

你也许可以逃脱

val = mat['someattribute'].ravel()

如果您知道它是一维数据valnp.array

val = mat['someattribute'].squeeze()

这将删除所有len=1尺寸(文档)

于 2012-12-04T05:49:53.043 回答