码迷,mamicode.com
首页 > 编程语言 > 详细

python读取.mat文件的数据

时间:2018-01-22 21:13:44      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:0.11   identity   line   atl   cti   读取   activity   erro   stdin   

首先导入scipy的包 from scipy.io import loadmat 

然后读取 m = loadmat("F:/__identity/activity/论文/data/D001.mat") 

注意这里m是一个dict数据结构

>>> m
{__header__: bMATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Mon Aug 15 22:16:43 2011, __globals__: [], labels: array([[1],
       [3],
       [4],
       ...,
       [4],
       [3],
       [4]], dtype=uint8), data: array([[ 1.    ,  0.35  ,  0.265 , ...,  0.0995,  0.0485,  0.07  ],
       [ 2.    ,  0.53  ,  0.42  , ...,  0.2565,  0.1415,  0.21  ],
       [ 1.    ,  0.44  ,  0.365 , ...,  0.2155,  0.114 ,  0.155 ],
       ...,
       [ 1.    ,  0.59  ,  0.44  , ...,  0.439 ,  0.2145,  0.2605],
       [ 1.    ,  0.6   ,  0.475 , ...,  0.5255,  0.2875,  0.308 ],
       [ 2.    ,  0.625 ,  0.485 , ...,  0.531 ,  0.261 ,  0.296 ]]), __version__: 1.0}
>>> m.keys()
dict_keys([__header__, __globals__, labels, data, __version__])
>>> m["labels"]
array([[1],
       [3],
       [4],
       ...,
       [4],
       [3],
       [4]], dtype=uint8)
>>> m["data"]
array([[ 1.    ,  0.35  ,  0.265 , ...,  0.0995,  0.0485,  0.07  ],
       [ 2.    ,  0.53  ,  0.42  , ...,  0.2565,  0.1415,  0.21  ],
       [ 1.    ,  0.44  ,  0.365 , ...,  0.2155,  0.114 ,  0.155 ],
       ...,
       [ 1.    ,  0.59  ,  0.44  , ...,  0.439 ,  0.2145,  0.2605],
       [ 1.    ,  0.6   ,  0.475 , ...,  0.5255,  0.2875,  0.308 ],
       [ 2.    ,  0.625 ,  0.485 , ...,  0.531 ,  0.261 ,  0.296 ]])

有点不太懂这个“uint8”

>>> m["labels"][0]
array([1], dtype=uint8)
>>> m["labels"][0][0]
1
>>> m["labels"][0][0] + 1
2
>>> m["labels"][0].as_type("int")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: numpy.ndarray object has no attribute as_type‘   # 注意时astype不是as_type
>>> m["labels"][0].dtype
dtype(uint8)
>>> m["labels"][0].astype("int")
array([1])

这个数据类型真是醉了:

>>> type(m["labels"][0][0] + 1)
<class ‘numpy.int32‘>

 

如果要把它变成dataframe,导入pandas后

>>> df = pd.DataFrame(m["data"])
>>> df.head()
     0      1      2      3       4       5       6      7
0  1.0  0.350  0.265  0.090  0.2255  0.0995  0.0485  0.070
1  2.0  0.530  0.420  0.135  0.6770  0.2565  0.1415  0.210
2  1.0  0.440  0.365  0.125  0.5160  0.2155  0.1140  0.155
3  3.0  0.330  0.255  0.080  0.2050  0.0895  0.0395  0.055
4  3.0  0.425  0.300  0.095  0.3515  0.1410  0.0775  0.120

 

python读取.mat文件的数据

标签:0.11   identity   line   atl   cti   读取   activity   erro   stdin   

原文地址:https://www.cnblogs.com/cymwill/p/8331002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!