Python 将字符串拆分为numpy数组
我正在尝试拆分此元素:Python 将字符串拆分为numpy数组,python,numpy,Python,Numpy,我正在尝试拆分此元素: '(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)' 到一个numpy数组。我尝试了以下方法: '(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783,
'(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)'
到一个numpy数组。我尝试了以下方法:
'(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)'.split(', ')
['(353.0206847485174',
'351.209306627799',
'357.05459767397815',
'351.53131418867196',
'350.8487161820783',
'356.76859139989006)']
但我有以下几点:
'(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)'.split(', ')
['(353.0206847485174',
'351.209306627799',
'357.05459767397815',
'351.53131418867196',
'350.8487161820783',
'356.76859139989006)']
所以第一个和最后一个元素仍然有列,知道如何修复吗?谢谢我想你真的想要一个数字数组,而不是字符串数组
>>>import ast
>>>import numpy as np
>>>s = '(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)'
>>> np.array(ast.literal_eval(s))
array([353.02068475, 351.20930663, 357.05459767, 351.53131419,
350.84871618, 356.7685914 ])
>>>
我想你真的想要一个数字数组,而不是字符串数组
>>>import ast
>>>import numpy as np
>>>s = '(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)'
>>> np.array(ast.literal_eval(s))
array([353.02068475, 351.20930663, 357.05459767, 351.53131419,
350.84871618, 356.7685914 ])
>>>
您可以在没有任何附加依赖项的情况下执行此操作
s = '(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)'
nums = s.strip('(').strip(')').split(',')
numbers = [float(n.strip()) for n in nums]
这会将值作为列表提供,如果希望将其作为numpy数组,请将最后一行替换为
import numpy as np
numbers = np.array([float(n.strip()) for n in nums])
您可以在没有任何附加依赖项的情况下执行此操作
s = '(353.0206847485174, 351.209306627799, 357.05459767397815, 351.53131418867196, 350.8487161820783, 356.76859139989006)'
nums = s.strip('(').strip(')').split(',')
numbers = [float(n.strip()) for n in nums]
这会将值作为列表提供,如果希望将其作为numpy数组,请将最后一行替换为
import numpy as np
numbers = np.array([float(n.strip()) for n in nums])
您是否尝试过在拆分之前从字符串中切掉“()”?是否尝试过在拆分之前从字符串中切掉“()”?