python读取.mat文件的数据及实例代码
首先导入scipy的包fromscipy.ioimportloadmat
然后读取m=loadmat("F:/__identity/activity/论文/data/D001.mat")
注意这里m是一个dict数据结构
>>>m {'__header__':b'MATLAB5.0MAT-file,Platform:PCWIN,Createdon:MonAug1522:16:432011','__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(mostrecentcalllast): File"",line1,in AttributeError:'numpy.ndarray'objecthasnoattribute'as_type'#注意时astype不是as_type >>>m["labels"][0].dtype dtype('uint8') >>>m["labels"][0].astype("int") array([1])
这个数据类型真是醉了:
>>>type(m["labels"][0][0]+1)
如果要把它变成dataframe,导入pandas后
>>>df=pd.DataFrame(m["data"]) >>>df.head() 01234567 01.00.3500.2650.0900.22550.09950.04850.070 12.00.5300.4200.1350.67700.25650.14150.210 21.00.4400.3650.1250.51600.21550.11400.155 33.00.3300.2550.0800.20500.08950.03950.055 43.00.4250.3000.0950.35150.14100.07750.120
总结
以上所述是小编给大家介绍的python读取.mat文件的数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!