操纵numpy结构化对象

时间:2016-04-12 23:54:07

标签: python arrays numpy

我用scipy.io读了一个.mat文件:

data = scipy.io.loadmat(etc.)

该函数返回一个字典,我的Matlab结构数组存储在Numpy结构化数组中。到现在为止还挺好。我的一个字段叫做repet1_F3,应该包含一个浮点数向量。我使用以下方法访问了矢量:

repet1_F3= data['repet1_F3']

repet1_F3有一个奇怪的结构,我无法操纵:

>>> repet1_F3
array(array([ 0.48856978,  0.74278461, 2.73300925,  2.72642893, 2.73684854,  2.74516561,  2.69143553]), dtype=object)

我做错了吗?我怎么能把这个对象转换成标准的numpy数组?

1 个答案:

答案 0 :(得分:1)

loadmat倾向于在numpy对象数组中包装MATLAB结构。

array(array([ 0.48856978,  0.74278461, 
 2.73300925,  2.72642893,  2.73684854,  2.74516561,  2.69143553]), dtype=object)

看起来像是dtype对象的1个元素数组;该元素本身就是一个浮点数组。外部数组可能具有形状()(0d)。

尝试repet1_F3.item()repet1_F3([])。其中一个应该给内部数组。

你知道包含这样的数字的MATLAB结构吗?

更正 - 应为repet1_F3[()]