Reputation: 343
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,)
?
Upvotes: 3
Views: 2758
Reputation: 16440
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.
Upvotes: 1
Reputation: 5708
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]]
Upvotes: 2