scipy.io(输入和输出)包用于读写各种格式的文件。scipy.io支持的格式很多,下面列出了几种常用格式:
- Matlab
- IDL
- Matrix Market
- Wave
- Arff
- Netcdf
MATLAB
Matlab 格式是最常用的。
下面是用于加载和保存.mat文件的函数。
- loadmat 加载MATLAB文件
- savemat 保存为MATLAB文件
- whosmat 列出MATLAB文件中的变量
示例
import scipy.io as sio import numpy as np # 保存mat文件 vect = np.arange(20) sio.savemat('array.mat', {'vect':vect}) # 加载文件 mat_file_content = sio.loadmat('array.mat') print (mat_file_content)
上面的程序将生成以下输出。
{'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Sun Jun 30 10:51:57 2019', '__version__': '1.0', '__globals__': [], 'vect': array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])}
可以看到,文件中包含了文件元信息,以及我们保存的数组信息。
如果想在不加载文件的情况下,查看文件中的概要内容,可使用whosmat命令,如下所示。
import scipy.io as sio mat_file_content = sio.whosmat('array.mat') print (mat_file_content)
上面的程序将生成以下输出。
[('vect', (1, 20), 'int64')]