<分区>
你好,通过网络做一些事情,想知道是否有任何方法可以将 python 数组作为字符串转换回 python 数组。例如
x = "[1,2,3,4]"
将 x 转换为
x_array = [1,2,3,4]
如果它也适用于 numpy 多维数组,那就更好了!
<分区>
你好,通过网络做一些事情,想知道是否有任何方法可以将 python 数组作为字符串转换回 python 数组。例如
x = "[1,2,3,4]"
将 x 转换为
x_array = [1,2,3,4]
如果它也适用于 numpy 多维数组,那就更好了!
最佳答案
对于普通数组,使用 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]]'
>>>
虽然对于简单的问题,您可以使用的一种技巧是使用 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]])
>>>
关于python - 将数组的字符串表示形式转换为 python 中的实际数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20273790/