将坐标字符串转换为X,Y np数组

时间:2019-01-31 19:06:21

标签: python numpy

给出以下字符串:

str="418,368 885,365 953,562 361,569"

我想像这样将其转换为np.array:

np.array ([[418,368], [885,365], [953,562], [361,569]])

在Python中执行此操作的好方法是什么?

到目前为止,我被困在这里:

>>> str="418,368 885,365 953,562 361,569"
>>> result=[x.strip() for x in str.split(' ')]
>>> print (result)
['418,368', '885,365', '953,562', '361,569']

我需要以某种方式将其转换为所需的数组。我看到np.fromstring,但不确定如何连接,想知道这条路径是否不正确。

2 个答案:

答案 0 :(得分:3)

将空格转换为逗号,然后使用逗号分隔作为分隔符。然后,转换为int dtype数组并重塑-

In [17]: np.array(str.replace(' ',',').split(','),dtype=int).reshape(-1,2)
Out[17]: 
array([[418, 368],
       [885, 365],
       [953, 562],
       [361, 569]])

答案 1 :(得分:2)

您很亲密:

import numpy as np

data = "418,368 885,365 953,562 361,569"
result = np.array([x.strip().split(',') for x in data.split(' ')], dtype=int)
print(result)

打印:

[[418 368]
 [885 365]
 [953 562]
 [361 569]]