Python新手:如何从对象中提取一个元素?

时间:2013-05-29 14:51:21

标签: python matrix attributes

我是python的新手,所以我真的不知道如何提出我的问题,所以我的术语可能是错的。无论如何,我给出了一些初步代码,创建了一个名为subeta的矩阵。我需要使用subeta。但是,当我输入'subeta'时,我发现该对象实际上比我想要使用的矩阵有更多的信息(见下文)。如何从该对象subeta中存储的所有信息中仅提取数组(在'data'之后,不包括dtype = float32部分)?

In [17]: subeta

Out[17]: 
{'data': array([[ 1.        ,  0.88093734,  0.87001401, ...,  0.65282464,
     0.59209341,  0.58587438],
   [ 0.88093734,  1.        ,  0.97301871, ...,  0.63097703,
     0.60524851,  0.60063201],
   [ 0.87001401,  0.97301871,  1.        , ...,  0.6584534 ,
     0.61063689,  0.5927977 ],
   ..., 
   [ 0.65282464,  0.63097703,  0.6584534 , ...,  1.        ,
     0.7761867 ,  0.72384161],
   [ 0.59209341,  0.60524851,  0.61063689, ...,  0.7761867 ,
     1.        ,  0.99335372],
   [ 0.58587438,  0.60063201,  0.5927977 , ...,  0.72384161,
     0.99335372,  1.        ]], dtype=float32),
'desc': 'Correlation matrix [channels,channels]',
'funcfile': '/Users/...[omitted]/newJJ/S3/func/func_res.nii.gz',
'mask': <nibabel.nifti1.Nifti1Image at 0x5344350>, 
'maskfile': '/Users/...[omitted]/S3/segment/gm2func.nii.gz /\\ sphere.nii.gz',
'maskthresh': 0.5,
'mode': 'fMRI', 
'type': 'VTT/eta2'}

2 个答案:

答案 0 :(得分:5)

subeta是一本字典。要获得数组的句柄,您可以这样做:

array = subeta['data']

现在,array是一个numpy ndarray,它包含float32个对象(它是一个4字节的浮点数组)。 ndarray个对象带有大量非常有用的元数据(包括dtype=float32部分,可以从.dtype属性和shape等其他属性进行检查

答案 1 :(得分:1)

使用:

subeta['data']

或者:

my_data = subeta['data']