【发布时间】:2011-05-30 22:33:35
【问题描述】:
有没有办法初始化一个形状的 numpy 数组并添加到它?我将通过一个列表示例来解释我需要什么。如果我想创建一个循环生成的对象列表,我可以这样做:
a = []
for i in range(5):
a.append(i)
我想用一个 numpy 数组做类似的事情。我知道 vstack、concatenate 等。但是,似乎这些需要两个 numpy 数组作为输入。我需要的是:
big_array # Initially empty. This is where I don't know what to specify
for i in range(5):
array i of shape = (2,4) created.
add to big_array
big_array 的形状应为 (10,4)。如何做到这一点?
编辑:
我想添加以下说明。我知道我可以定义 big_array = numpy.zeros((10,4)) 然后填写它。但是,这需要提前指定 big_array 的大小。我知道在这种情况下的大小,但如果我不知道怎么办?当我们在python中使用.append函数扩展列表时,我们不需要提前知道它的最终大小。我想知道是否存在类似的东西可以从较小的数组创建一个更大的数组,从一个空数组开始。
【问题讨论】:
-
顺便说一下,您的第一个代码示例可以作为列表理解简洁而简洁地编写:
[i for i in range(5)]。 (等同于:list(range(5)),虽然这是一个人为的例子。) -
哪种解决方案适合您?我正在尝试做类似
x = numpy.array()之类的事情,就像我们对y = []之类的列表所做的那样;但它没有用