python:如何将元组列表转换为numpy数组

2024-03-29 09:48:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我把元组(x,y坐标)的列表转换成字符串并写入文件。当我从文件中读取第行时,我的列表如下所示:

[(341, 115), (174, 227), (457, 308)]

如何将这种列表转换为numpy数组?最终结果如下:

^{pr2}$

Tags: 文件字符串numpy列表数组元组行时pr2
2条回答

使用numpy

lst = [(341, 115), (174, 227), (457, 308)]

import numpy as np
print(np.array(lst))

输出:

^{pr2}$

使用list comprehension

print([list(lst) for lst in lst])

输出

[[341, 115], [174, 227], [457, 308]]

编辑

如果字符串与粘贴在问题中的代码不一样:

lst = "[(341, 115), (174, 227), (457, 308)]"

然后:

import numpy as np
from ast import literal_eval
print(np.array(literal_eval(lst)))

最终(为了理解列表):

print([list(lst) for lst in literal_eval(lst)])

使用ast.literal_eval将行(字符串)转换为实际的列表对象,并直接对其调用numpy.array

line = "[(341, 115), (174, 227), (457, 308)]"

from ast import literal_eval
import numpy as np

np.array(literal_eval(line))

输出:

^{pr2}$

相关问题 更多 >