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

You might be able to get away with

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

which will flatten val to a 1D np.array if you know it is 1D data or

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

which will remove all the len=1 dimensions (doc)

于 2012-12-04T05:49:53.043 に答える