将dtype ='<u55201'转换为=“”numpy =“”“array =”“

时间:2017-12-16 10:15:04

标签: python json numpy

=”“

我有一个我没有的数据集创造自己。我在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的专家所以请原谅我,如果我错过了一些非常明显的东西。

提前致谢。 亚历

1 个答案:

答案 0 :(得分:0)

函数loadmat返回.mat文件中包含的变量字典。在这种情况下,您的文件包含一个变量,其名称与文件本身的名称一致。接下来,要从字符串中获取数值数组,您可以对其进行评估。在这种情况下,您将获得一个必须转换为颠簸数组的列表。所以试试这个:

actual_numpy_matrix = np.array(eval(mat['Y_test'][0]))