我可以convert a string representation of a list to a list与ast.literal_eval
。是否有相当于一个numpy数组?将数组的字符串表示形式转换为Python中的numpy数组
x = arange(4)
xs = str(x)
xs
'[0 1 2 3]'
# how do I convert xs back to an array
使用ast.literal_eval(xs)
产生了SyntaxError
。如果需要,我可以进行字符串解析,但我认为可能有更好的解决方案。
的numpy的数组不提供可以用于重建甚至蟒蛇列表'repr'。你可以修改字符串来重新创建一个列表,然后从该列表创建一个numpy数组。 'numpy.array(ast.literal_eval(','.join(xs.split(''))))' –
使用'ast.literal_eval'是否很重要?如果是这样,那么答案是* no *,你不能从'literal_eval'得到一个numpy数组。来自'ast.literal_eval(node_or_string)'的python文档:“提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,字典,布尔值和无。”如果您真正想要的是将numpy数组转换为字符串然后再转换为数组的方便方式,请在问题中详细说明。 –
对不起,不清楚。我很好奇有一种类似于'ast.literal_eval'的模拟器,它适用于numpy数组,但并不期望使用'ast.literal_eval'。 – jdmcbr