将存储为字符串的数组转换为适当的numpy数组

时间:2018-06-07 13:50:13

标签: python arrays numpy

由于冗长乏味的原因,我有很多存储为字符串的数组:

tmp = '[[1.0, 3.0, 0.4]\n [3.0, 4.0, -1.0]\n [3.0, 4.0, 0.1]\n [3.0, 4.0, 0.2]]'

现在我显然不希望我的数组作为长字符串,我希望它们作为正确的numpy数组,所以我可以使用它们。因此,将上述内容转换为:

的好方法是什么
tmp_np = np.array([[1.0, 3.0, 0.4]
                   [3.0, 4.0, -1.0]
                   [3.0, 4.0, 0.1]
                   [3.0, 4.0, 0.2]])

这样我就可以做一些简单的事情,比如tmp_np.shape = (4,3)或简单的索引tmp_np[0,:] = [1.0, 3.0, 0.4]等。

由于

1 个答案:

答案 0 :(得分:1)

如果您将\n字符替换为,,则可以使用ast.literal_eval

temp_np = np.array(ast.literal_eval(tmp.replace('\n', ',')))

返回:

>>> tmp_np
array([[ 1. ,  3. ,  0.4],
       [ 3. ,  4. , -1. ],
       [ 3. ,  4. ,  0.1],
       [ 3. ,  4. ,  0.2]])