Remove string quotes from array in Python

余生长醉 提交于 2019-12-24 03:44:16

问题


I'm trying to get rid of some characters in my array so I'm just left with the x and y coordinates, separated by a comma as follows:

[[316705.77017187304,790526.7469308273]
 [321731.20991025254,790958.3493565321]]

I have used zip() to create a tuple of the x and y values (as pairs from a list of strings), which I've then converted to an array using numpy. The array currently looks like this:

[['316705.77017187304,' '790526.7469308273,']
 ['321731.20991025254,' '790958.3493565321,']]

I need the output to be an array.

I'm pretty stumped about how to get rid of the single quotes and the second comma. I have read that map() can change string to numeric but I can't get it to work.

Thanks in advance


回答1:


Using 31.2. ast — Abstract Syntax Trees¶

import ast
xll =  [['321731.20991025254,' '790958.3493565321,'], ['321731.20991025254,' '790958.3493565321,']]
>>> [ast.literal_eval(xl[0]) for xl in xll]
[(321731.20991025254, 790958.3493565321), (321731.20991025254, 790958.3493565321)]

Above gives list of tuples for list of list, type following:

>>> [list(ast.literal_eval(xl[0])) for xl in xll]
[[321731.20991025254, 790958.3493565321], [321731.20991025254, 790958.3493565321]]

OLD: I think this:

>>> sll
[['316705.770172', '790526.746931'], ['321731.20991', '790958.349357']]
>>> fll = [[float(i) for i in l] for l in sll]
>>> fll
[[316705.770172, 790526.746931], [321731.20991, 790958.349357]]
>>> 

old Edit:

>>> xll =  [['321731.20991025254,' '790958.3493565321,'], ['321731.20991025254,' '790958.3493565321,']]
>>> [[float(s) for s in xl[0].split(',') if s.strip() != ''] for xl in xll]
[[321731.20991025254, 790958.3493565321], [321731.20991025254, 790958.3493565321]]


来源:https://stackoverflow.com/questions/21352016/remove-string-quotes-from-array-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!