动态地向阵列添加新行

时间:2015-07-13 14:01:04

标签: python arrays numpy

我想初始化一个空列表并继续向其添加新行。例如。 myArray的= [] 现在在每次迭代中我想添加我在迭代期间计算的新行。例如

for i in range(5):
     calc=[i,i+1,i+4,i+5]

在计算之后,我想将此行添加到myarray。在第一次迭代之后,myarray将是1X4,在第二次迭代后它将是2X4等。我尝试了numpy.concatenate。它只是添加到同一行,即我获得1X4然后1X8。我也试过vstack,但是因为myarray最初是[],它会给出错误"除了连接轴之外的所有输入数组维度必须完全匹配"

2 个答案:

答案 0 :(得分:1)

看起来你需要一个多维数组

calc = [[0, 1, 4, 5]]
for i in range(1, 5):
    calc.append([i, i+1, i+4, i+5])

将为您提供以下数组

calc = [[0, 1, 4, 5], [1, 2, 5, 6], [2, 3, 6, 7], [3, 4, 7, 8], [4, 5, 8, 9]]

要访问calc的各种元素,您可以像下面的

一样解决它
calc[0] returns [0,1,5,6]
calc[1] returns [1,2,5,6]

答案 1 :(得分:0)

我很确定这是有效的,除非我误解:

mylist = [] #I'm using a list, not an array
for i in range(5):
     calc=[i,i+1,i+4,i+5]
     mylist.append(calc) #You're appending a list into another list, making a nested list

现在,更多一般知识。追加与连接。

如果要添加到列表中,则要追加。在这种情况下,您将列表添加到另一个列表中。如果要将两个列表“合并”在一起以创建单个列表,则需要连接 - 这就是为什么您的实现没有创建嵌套列表的原因。