将int映射到2D数组python

时间:2020-02-17 13:51:46

标签: python numpy parsing multidimensional-array

要解析

s="1,2,3,4_5,6,7,8"

[[1,2,3,4],[5,6,7,8]]

我当前正在使用

import numpy as np
a=np.array([list(map(int,r.split(","))) for r in s.split("_")])

是否有更多的pythonic或一次性的内置方法来执行此操作,或者我在正确的轨道上吗?
Python新手。

2 个答案:

答案 0 :(得分:2)

使用列表理解:

s="1,2,3,4_5,6,7,8"

a = np.array([[int(x) for x in r.split(',')] for r in s.split('_')])

答案 1 :(得分:2)

您可以使用np.genfromtxt

from io import StringIO
import numpy as np

s="1,2,3,4_5,6,7,8"

np.genfromtxt(StringIO(s.replace("_", "\n")), delimiter=",")

array([[1., 2., 3., 4.],
       [5., 6., 7., 8.]])