有没有办法初始化一个形状的numpy数组并添加到它?我将用列表示例解释我需要什么.如果我想创建一个循环中生成的对象列表,我可以这样做:
a = []
for i in range(5):
a.append(i)
Run Code Online (Sandbox Code Playgroud)
我想用numpy数组做类似的事情.我知道vstack,连接等等.但是,似乎这些需要两个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
Run Code Online (Sandbox Code Playgroud)
本big_array
应具有的形状(10,4)
.这该怎么做?
编辑:
我想补充以下说明.我知道我可以定义big_array = numpy.zeros((10,4))
然后填写它.但是,这需要提前指定big_array的大小.我知道这种情况下的大小,但如果我不知道怎么办?当我们使用.append
函数在python中扩展列表时,我们不需要事先知道它的最终大小.我想知道是否有类似的东西从较小的数组创建一个更大的数组,从一个空数组开始.
如果您尝试在numpy中创建具有大量维度的数组,则会引发异常:
In [1]: import numpy as np
In [2]: a = np.zeros((1,) * 33)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-2-32dc30f6e439> in <module>()
----> 1 a = np.zeros((1,) * 33)
ValueError: sequence too large; must be smaller than 32
Run Code Online (Sandbox Code Playgroud)
这有什么简单的解决方法吗?
numpy不允许创建此类数组的原因是什么?