python - 将数组的字符串表示形式转换为 python 中的实际数组

标签 python arrays numpy type-conversion

<分区>

你好,通过网络做一些事情,想知道是否有任何方法可以将 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/

相关文章:

Python3函数定义、箭头和冒号

numpy - Numpy `where` 子句的奇怪行为

python - 用python拟合曲线

python - 将双值 numpy 数组屏蔽为 0-1 二进制数组

python - python中格式错误的环境变量检测

python - Python中如何区分不同类型的NaN float

python - tkinter 中的进度条不工作

arrays - 在循环中为数组赋值

php - 如何在php中映射一个数组

javascript - 在Javascript中使用Symbol.iterable进行迭代时如何检测当前元素是最后一个元素?