在numpy中堆叠数组

问题描述 投票:1回答:2

我有两个数组:

A = np.array([1, 2, 3])
B = np.array([2, 3, 4])
C = np.stack((A, B), axis=0)

print C.shape
(2, 3)

不应该形状是(6,)

python numpy stack
2个回答
1
投票

使用np.stack()函数,您可以指定要将哪个axis视为索引轴。所以你可以看到你永远不会得到6的形状,只有(2,3)(3,2)这个例子取决于你选择的轴。

见下文:

A = np.array([1, 2, 3])
B = np.array([2, 3, 4])
arrays = [A, B]

使用此代码:

print(np.stack(arrays, axis=0))

你得到这个输出:

[[1 2 3]
 [2 3 4]]

使用此代码:

print(np.stack(arrays, axis=1))

你得到这个输出:

[[1 2]
 [2 3]
 [3 4]]

0
投票

因为你沿着轴0堆叠。它正在做类似的事情

[[1,2,3],
 [4,5,6]]

如果你想要(6,)形状,你应该使用np.concatenate。

© www.soinside.com 2019 - 2024. All rights reserved.