我有一个100x200的输入,以及一个1x100的目标矩阵,我用它来运行gridsearch并在python中创建一个分类器。但是,我得到的错误是我的目标数据训练集不是数组。我试过了:
target=np.asarray(matTarget)
matTarget只是我使用scipy.io.loadmat从Matlab导入的目标。
我的确切错误是
len() of unsized object
当我尝试使用target.size时,我也会得到一个空白大小。
如果我不进行数组转换,那么我得到
Expected array-like (array or non string sequence) got {'_header_': b'Matlab matfile ... Array([[1],[1]...)}
我仍然在Matlab中使用原始矩阵,并尝试使用np.array而不是asarray。
如果我print(matTarget.keys())
,我会得到(' 标题`,' 版本',' 全球',' y_train'])
y_train是mat文件本身的名称
答案 0 :(得分:1)
根据scipy.io.loadmat
的文档,它返回一个字典,其中的值是包含的矩阵。
返回: mat_dict:dict
将变量名称作为键的字典,并将加载的矩阵作为值。
因此,在使用numpy之前,您需要按名称选择矩阵:
matrix = matTarget['name of matrix']