Stacking arrays in numpy

帅比萌擦擦* 提交于 2020-07-15 08:28:27

问题


I have two arrays:

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

print C.shape
(2, 3)

Shouldn't the shape be (6,) ?


回答1:


Using the np.stack() function you can specify which axis would you like to be considered the index axis. So as you can see you will never get a shape of 6, only (2,3) or (3,2) for this example depending on what axis you chose.

See below:

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

With this code:

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

you get this output:

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

with this code:

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

you get this output:

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



回答2:


Since you are stacking along axis 0. It is doing something like

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

If you want (6,) shape, you should use np.concatenate.



来源:https://stackoverflow.com/questions/47945669/stacking-arrays-in-numpy

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!