Python 将值插入到空多维空间。numpy阵列

Python 将值插入到空多维空间。numpy阵列,python,arrays,numpy,Python,Arrays,Numpy,我需要创建一个形状为(?,10,10,3)的空numpy数组?表示我不知道将插入多少个元素。然后,我有许多形状为(1,10,10,3)的numpy数组,我希望将它们逐个插入到准备好的数组中,因此?标记将随着插入的元素而增加 我正在尝试numpy数组方法的所有变体,如empty,insert,concatenate,append。。。但我无法做到这一点。你能帮我一下吗?使用works: 不要那样做;NumPy数组的大小是固定的,要想动态扩展它们,每次都需要创建一个新的数组,而且运行时成本非常昂贵。

我需要创建一个形状为
(?,10,10,3)
的空numpy数组<代码>?表示我不知道将插入多少个元素。然后,我有许多形状为
(1,10,10,3)
的numpy数组,我希望将它们逐个插入到准备好的数组中,因此
标记将随着插入的元素而增加

我正在尝试numpy数组方法的所有变体,如
empty
insert
concatenate
append
。。。但我无法做到这一点。你能帮我一下吗?

使用works:


不要那样做;NumPy数组的大小是固定的,要想动态扩展它们,每次都需要创建一个新的数组,而且运行时成本非常昂贵。如果您对沿第一个轴的最大可能长度有一些想法,只需使用
out=(M,10,10,3)
,,在每次迭代时,
M
是最大数量和索引并分配:
out[i]=..
保留迭代计数。最后,简单地将
out[:C]
切掉,
C
是最后的迭代次数/计数。谢谢,我不知道。因此,我删除了插入元素的第一个一维条目,将其附加到一个常规python数组中,从而使其成为一个NumPy数组。如果你真的要做这样的事情,不要累加到数组中,使用
my_list.append(array_x)
,累加到一个普通的
list
对象中,然后执行
final_array=np.array(my_list)
@juanpa.arrivillaga是的,sry。我按照你的建议做了。谢谢。但是,正如有人在问题的评论中提到的那样,这种“极其昂贵的二次运行时成本”又如何呢?这是真的还是假的?我相信是的。如果可以的话,最好是将其附加到列表中,然后形成数组。我只是回答你的问题!好的,所以我只使用列表附加,再次感谢。如果
mat
array
在维度上匹配,我更喜欢使用
连接
np.append
看起来太像
list.append
,在很多方面让初学者感到困惑。
import numpy as np

mat = np.empty((0,10,10,3))

array = np.random.rand(1,10,10,3)

mat = np.append(mat, array, axis=0)
mat = np.append(mat, array, axis=0)

print(mat.shape)

>>>(2,10,10,3)