现在我正在编写一个从文件中读取数据的函数,目标是将该数据添加到numpy数组并返回所述数组。
我想将数组作为2D数组返回,但是我不确定数组的完整形状是什么(我知道列的数量,但不知道行的数量)。 我现在拥有的是:
if (Regex.IsMatch(Value, "^A0[2-9]")|| Regex.IsMatch(Value, "^A1[0-5]"))
然而,这是一个1D阵列。
基本上我要问的是:
有没有办法将python列表作为行添加到具有可变行数的numpy数组中?
答案 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.loadtxt
和np.genfromtxt
基本上是这样做的,只是有更多的花里胡哨。
答案 2 :(得分:0)
如果将@Abstracted的解决方案修改为:
data_array = np.loadtxt("data.txt", dtype =int)
如果您愿意的话,将获得整数形式的数组。