我有一个我没有的数据集创造自己。我在matlab中反汇编文件以获取我感兴趣的数组并转换为json。我想导入Python的数组叫做'Y_test.mat'。这是我的代码的一部分:
mat = spio.loadmat('Y_test.mat', squeeze_me=False)
print mat
这给了我这样的输出:
{'__version__': '1.0', '__header__': 'MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Sat Dec 16 10:25:44 2017', 'Y_test': array([ u'[1,2,3]'], dtype='<U55201'), '__globals__': []}
现在我想将Y_test转换为numpy数组,但我无法得到它。我试过np.array(ast.literal_eval()),但这给了我一个跟随错误:
ValueError: malformed string
我绝不是python的专家所以请原谅我,如果我错过了一些非常明显的东西。
提前致谢。 亚历
答案 0 :(得分:0)
函数loadmat
返回.mat
文件中包含的变量字典。在这种情况下,您的文件包含一个变量,其名称与文件本身的名称一致。接下来,要从字符串中获取数值数组,您可以对其进行评估。在这种情况下,您将获得一个必须转换为颠簸数组的列表。所以试试这个:
actual_numpy_matrix = np.array(eval(mat['Y_test'][0]))