Previous topic

numpy.broadcast_arrays

Next topic

numpy.squeeze

numpy.expand_dims

numpy.expand_dims(a, axis)[source]

Expand the shape of an array.

Insert a new axis that will appear at the axis position in the expanded array shape.

Note

Previous to NumPy 1.13.0, neither axis < -a.ndim - 1 nor axis > a.ndim raised errors or put the new axis where documented. Those axis values are now deprecated and will raise an AxisError in the future.

Parameters:
a : array_like

Input array.

axis : int

Position in the expanded axes where the new axis is placed.

Returns:
res : ndarray

Output array. The number of dimensions is one greater than that of the input array.

See also

squeeze
The inverse operation, removing singleton dimensions
reshape
Insert, remove, and combine dimensions, and resize existing ones

doc.indexing, atleast_1d, atleast_2d, atleast_3d

Examples

>>> x = np.array([1,2])
>>> x.shape
(2,)

The following is equivalent to x[np.newaxis,:] or x[np.newaxis]:

>>> y = np.expand_dims(x, axis=0)
>>> y
array([[1, 2]])
>>> y.shape
(1, 2)
>>> y = np.expand_dims(x, axis=1)  # Equivalent to x[:,np.newaxis]
>>> y
array([[1],
       [2]])
>>> y.shape
(2, 1)

Note that some examples may use None instead of np.newaxis. These are the same objects:

>>> np.newaxis is None
True