将列表添加到numpy数组

时间:2016-06-07 22:28:00

标签: python numpy

现在我正在编写一个从文件中读取数据的函数,目标是将该数据添加到numpy数组并返回所述数组。

我想将数组作为2D数组返回,但是我不确定数组的完整形状是什么(我知道列的数量,但不知道行的数量)。 我现在拥有的是:

if (Regex.IsMatch(Value, "^A0[2-9]")|| Regex.IsMatch(Value, "^A1[0-5]"))

然而,这是一个1D阵列。

基本上我要问的是:

有没有办法将python列表作为行添加到具有可变行数的numpy数组中?

3 个答案:

答案 0 :(得分:1)

如果您的文件data.txt

1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

您需要做的就是

>>> import numpy as n
>>> data_array = n.loadtxt("data.txt")
>>> data_array

array([[1., 2., 3., 4.],
       [1., 2., 3., 4.],
       [1., 2., 3., 4.],
       [1., 2., 3., 4.],
       [1., 2., 3., 4.],
       [1., 2., 3., 4.]])

答案 1 :(得分:1)

查看构造数组的常用方法:

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

输入是列表列表。你的读者可以模仿那个

大致是:

data = []
for line in f.readline():
    values = line.strip().split(',')
    values = [int(v) for v in values]
    data.append(values)
data = np.array(data)

np.loadtxtnp.genfromtxt基本上是这样做的,只是有更多的花里胡哨。

答案 2 :(得分:0)

如果将@Abstracted的解决方案修改为:

data_array = np.loadtxt("data.txt", dtype =int)

如果您愿意的话,将获得整数形式的数组。