我有一些元组(x,y坐标)的列表,已经被转化成字符串并写入了文件中。当我从文件中读取这行数据时,我的列表如下:
[(341, 115), (174, 227), (457, 308)]
我怎样把这种类型的列表转换为numpy数组?最终结果应该像这样:
[[341 115]
[174 227]
[457 308]]
使用 numpy
:
lst = [(341, 115), (174, 227), (457, 308)]
import numpy as np
print(np.array(lst))
输出:
[[341 115]
[174 227]
[457 308]]
使用列表推导式
:
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)])
lst
中的所有元素已经是int
类型。只需使用list(lst)
即可。 - meowgoesthedogline = "[(341, 115), (174, 227), (457, 308)]"
from ast import literal_eval
import numpy as np
np.array(literal_eval(line))
输出:
array([[341, 115],
[174, 227],
[457, 308]])
np.array("[(341, 115), (174, 227), (457, 308)]")
。 - Rakesh