我有5
numpy数组shape (5,5)
。我想要实现的是将这些5
numpy数组组合成一个形状数组(5,5,5)。我的代码如下所示,但不起作用:
combined = np.empty((0, 5, 5), dtype=np.uint8)
for idx in range(0, 5):
array = getarray(idx) # returns an array of shape (5,5)
np.append(combined, img, axis=0)
我想如果我将第一个轴设置为0,它将附加在此轴上,以便最终形状为(5,5,5)。这有什么不对?
答案 0 :(得分:1)
我自己想出来了:
combined = np.empty((0, 5, 5), dtype=np.uint8)
for idx in range(0, 5):
array = getarray(idx) # returns an array of shape (5,5)
array array[np.newaxis, :, :]
combined = np.append(combined, img, axis=0)
print combined.shape + returns (5,5,5)
答案 1 :(得分:0)
我试试:
A = np.array([getarray(idx) for idx in range(5)])
或者
alist = []
for idx in range(5):
alist.append(getarray(idx))
A = np.array(alist)
附加到列表比附加到数组更快。后者创建了一个全新的阵列 - 正如您所发现的那样。
dynamically append N-dimensional array - 同样的问题,从不同的维度开始。