问题
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