给出以下字符串:
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
,但不确定如何连接,想知道这条路径是否不正确。
答案 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]]