python - 初始化一个numpy数组

标签 python arrays numpy

有没有办法初始化一个形状的 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 函数扩展列表时,我们不需要提前知道它的最终大小。我想知道是否存在类似的东西可以从较小的数组创建一个更大的数组,从一个空数组开始。

最佳答案

numpy.zeros

Return a new array of given shape and type, filled with zeros.

numpy.ones

Return a new array of given shape and type, filled with ones.

numpy.empty

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/

相关文章:

python - 为什么我在 Python 中的 RSA 实现不起作用?

javascript - 数组自引用映射 - 非常奇怪的结果

java - 从存储在数组中的行打印选定的数字

Python生成具有随机步长的范围数组

python - NumPy:查找子矩阵/ block 和相应行、列索引中的最小值

python - 如何在 python 中已有的列表中插入第三个嵌套列表?

python - 如何更改进度条的位置 - 多重处理

关于通过引用指针复制数组的说明

python - 无法加载自定义数据集

python - 类型错误 : unsupported operand type(s) for -: 'generator' and 'NoneType'