创建空的3D numpy数组并使用每个新的给定值附加它

时间:2017-11-07 21:52:56

标签: python arrays numpy

我觉得必须有一个简单的解决方案,但我对Numpy还不太熟悉,在图书馆找不到符合我需求的任何东西。我觉得这是显而易见的事情,但我在StackOverflow上找不到任何类似的问题。

基本上,我想创建一个三维数组。我试过这样的话:matrix = np.array(None, ndmin=3)。现在,每当我有一个新变量时,我想要附加一个矩阵的维度,我选择了变量的新值。我怎样才能做到这一点?我和np.append()np.insert()一起玩,但我无法找到解决方案。

2 个答案:

答案 0 :(得分:2)

数组具有固定大小。你不能追加他们。如果您知道数组的上限,则可以使用

预先分配数组
np.empty((10, 10, 10))

对于10x10x10矩阵。然后,您可以保留3个索引x,y,z来跟踪您的实际大小。例如,添加一个新元素:

matrix[x,y,z] = newElement
x += 1

然后,当你完成后,你可以用

提取子矩阵
finalMatrix = matrix[:x,:y,:z]

答案 1 :(得分:0)

您可以使用np.empty((x,y,z))

你可以在这个答案中找到一个很好的解释: How to create 3 dimensions matrix in numpy , like matlab a(:,:,:)