给numpy数组添加一个列表
问题描述:
现在我正在写一个从文件读取数据的函数,目标是将数据添加到numpy数组并返回所述数组。我想将数组作为二维数组返回,但是我不确定数组的完整形状是什么(我知道列的数量而不是行)。 我有现在的问题是:给numpy数组添加一个列表
columns = _____
for line in currentFile:
currentLine = line.split()
data = np.zeros(shape=(columns),dtype=float)
tempData = []
for i in range(columns):
tempData.append(currentLine[i])
data = np.concatenate((data,tempdata),axis=0)
然而,这使得一维数组。
基本上就是我要问的是:
有没有办法有一个行添加一个Python列表的numpy的阵列行数量可变的?
答
如果你的文件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.]])
答
看构建阵列的常见方式:
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
基本上做的是,仅仅有更多花俏。
甚至不用像这样手动读取它,你可以简单地使用['numpy.loadtxt'](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy .loadtxt.html)读取写入numpy数组。同样,你可以使用['numpy.genfromtxt'](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.genfromtxt.html#numpy.genfromtxt) – CoryKramer