有没有办法初始化一个形状的 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
函数扩展列表时,我们不需要提前知道它的最终大小。我想知道是否存在类似的东西可以从较小的数组创建一个更大的数组,从一个空数组开始。
最佳答案
Return a new array of given shape and type, filled with zeros.
或
Return a new array of given shape and type, filled with ones.
或
Return a new array of given shape and type, without initializing entries.
但是,我们通过将元素附加到列表来构造数组的思路在 numpy 中使用不多,因为它的效率较低(numpy 数据类型更接近底层 C 数组)。相反,您应该将数组预先分配到您需要的大小,然后填充行。但是,如果必须,您可以使用 numpy.append
。
关于python - 初始化一个numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535374/