问题
I have an array A
that has shape (480, 640, 3)
, and an array B
with shape (480, 640)
.
How can I append these two as one array with shape (480, 640, 4)
?
I tried np.append(A,B)
but it doesn't keep the dimension, while the axis
option causes the ValueError: all the input arrays must have same number of dimensions
.
回答1:
Use dstack:
>>> np.dstack((A, B)).shape
(480, 640, 4)
This handles the cases where the arrays have different numbers of dimensions and stacks the arrays along the third axis.
Otherwise, to use append
or concatenate
, you'll have to make B
three dimensional yourself and specify the axis you want to join them on:
>>> np.append(A, np.atleast_3d(B), axis=2).shape
(480, 640, 4)
来源:https://stackoverflow.com/questions/34357617/append-2d-array-to-3d-array-extending-third-dimension