⾸先导⼊scipy的包 from scipy.io import loadmat
然后读取 m = loadmat(\"F:/__identity/activity/论⽂/data/D001.mat\") 注意这⾥m是⼀个dict数据结构
>>> m
{'__header__': b'MATLAB 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] + 12
>>> m[\"labels\"][0].as_type(\"int\")Traceback (most recent call last): File \" AttributeError: 'numpy.ndarray' object has no attribute 'as_type' # 注意时astype不是as_type>>> m[\"labels\"][0].dtypedtype('uint8') >>> m[\"labels\"][0].astype(\"int\")array([1]) 这个数据类型真是醉了:>>> type(m[\"labels\"][0][0] + 1) 如果要把它变成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.0701 2.0 0.530 0.420 0.135 0.6770 0.2565 0.1415 0.2102 1.0 0.440 0.365 0.125 0.5160 0.2155 0.1140 0.1553 3.0 0.330 0.255 0.080 0.2050 0.0895 0.0395 0.0554 3.0 0.425 0.300 0.095 0.3515 0.1410 0.0775 0.120 因篇幅问题不能全部显示,请点此查看更多更全内容