嗨,通过网络做一些事情,并想知道是否有任何方式将python数组转换为字符串回到python数组..例如
x = "[1,2,3,4]"
将x转换为
x_array = [1,2,3,4]
奖金,如果它也可以适用于多块的多维数组!
对于普通数组,请使用ast.literal_eval
:
>>> from ast import literal_eval >>> x = "[1,2,3,4]" >>> literal_eval(x) [1, 2, 3, 4] >>> type(literal_eval(x)) <type 'list'> >>>
numpy.array
但是因为Python将它们呈现为字符串,所以有点棘手:
>>> import numpy as np >>> x = [[1,2,3], [4,5,6]] >>> x = np.array(x) >>> x array([[1, 2, 3], [4, 5, 6]]) >>> x = str(x) >>> x '[[1 2 3]\n [4 5 6]]' >>>
你可以使用的一个hack用于简单的用逗号替换空白re.sub
:
>>> import re >>> x = re.sub("\s+", ",", x) >>> x '[[1,2,3],[4,5,6]]' >>>
然后,您可以使用ast.literal_eval
并将其转回numpy.array
:
>>> x = literal_eval(x) >>> np.array(x) array([[1, 2, 3], [4, 5, 6]]) >>>