标签:数据文件 train bool loadmat 数组 mdict data mat
loadmat()函数源码如下:
def loadmat(file_name, mdict=None, appendmat=True, **kwargs):
variable_names = kwargs.pop('variable_names', None)
MR, file_opened = mat_reader_factory(file_name, appendmat, **kwargs)
matfile_dict = MR.get_variables(variable_names)
if mdict is not None:
mdict.update(matfile_dict)
else:
mdict = matfile_dict
if file_opened:
MR.mat_stream.close()
return mdict
使用示例:
# loadmat()函数用于加载.mat数据文件
def testLoadmat(is_plot):
"""
.mat是数据文件。mat数据文件是matlab的数据存储标准格式。mat数据文件是标准的二进制文件.
scipy是构建在numpy的基础之上的,它提供了许多的操作numpy的数组的函数。
scipy.io包提供了多种功能来解决不同格式的文件的输入和输出
作用:
loadmat()函数用于加载.mat数据文件
参数:
file_name: str
.mat文件的文件名(当appendmat = True时,不用加.mat后缀),也可以打开类似文件的对象(file-like object)
mdict: dict, 可选,插入文件变量的字典
appendmat: bool , 可选,若为真则在文件名后添加后缀
byte_order: str / None, 可选
默认为none。表示从mat文件中猜测的字节顺序,可以是“native”,“=”,“little”,“<”,“>”,“BIG”之一。
mat_dtype: bool,可选
若为真,则返回与加载到MATLAB中相同的dtype的数组,而不是保存数组的dtype。
squeeze_me: bool,可选,判断是否压缩单位矩阵的维数
chars_as_string: bool,可选,将char数组转string数组
matlab_compatible: bool,可选
返回被MATLAB读取的数组(当squeeze_me = false, chars_as_string = false, mat_dtype = true, struct_as_record = true)
struct_as_record: bool,可选
设置flag来判断加载MATLAB以numpy记录数组还是以原形式numpy数组(dtype为对象)。
verify_compressed_data_integrity: bool,可选,MATLAB文件的长度是否已确认。
variable_names: None / sequence
若为None(默认),则读取文件中的所有变量。否则variable_names将是一个string序列,表示需要从mat文件中读取的变量名。此时读取器将跳过不是这个变量名的序列,一定程度上减少读取时间。
返回:
mat_dict: dict
以变量名为key,数组为values的字典
注意:
MATLAB 7.3及以上版本需要使用HDF5的库,scipy不支持该类版本mat文件的读取。
"""
data = sio.loadmat('datasets/data.mat')
train_X = data['X'].T
train_Y = data['y'].T
test_X = data['Xval'].T
test_Y = data['yval'].T
if is_plot:
plt.scatter(train_X[0, :], train_X[1, :], c=train_Y, s=40, cmap=plt.cm.Spectral);
return train_X, train_Y, test_X, test_Y
标签:数据文件,train,bool,loadmat,数组,mdict,data,mat 来源: https://blog.csdn.net/baicaiBC3/article/details/122849687
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。