由于冗长乏味的原因,我有很多存储为字符串的数组:
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]
等。
由于
答案 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]])