# How to add dimension to Numpy array?

Let’s check how to add a dimension to a Numpy array. Expanding dimensions in a NumPy array can be a valuable operation when working with multidimensional data. We will use the newaxis and expand_dims functions.

In this Python tutorial, I’ll show a few ways to expand the Numpy array by adding another dimension.

## Adding dimension with the newaxis method

```import numpy as np

my_array = np.arange(6).reshape(3, 2)
print(f"My array shape is: \n {my_array.shape}")

my_expanded_array = my_array[:, np.newaxis, :, np.newaxis]
print(f"My expanded array shape is: \n {my_expanded_array.shape}")

```

I am using the newaxis function and adding it as a parameter exactly where I can add a new axis.

```My array shape is:
(3, 2)
My expanded array shape is:
(3, 1, 2, 1)

```

This is how to add dimensions at the beginning of the Numpy array.

```import numpy as np

my_array = np.arange(6).reshape(3, 2)
print(f"My array shape is: \n {my_array.shape}")

my_expanded_array = my_array[:, np.newaxis, :, np.newaxis]
print(f"My expanded array shape is: \n {my_expanded_array.shape}")

my_another_array = my_array[:, :, np.newaxis, np.newaxis]
print(f"My another expanded array shape is: \n {my_another_array.shape}")

```

Thanks to my_array[:, :, np.newaxis, np.newaxis] it is placed at the beginning of the array.

```My array shape is:
(3, 2)
My expanded array shape is:
(3, 1, 2, 1)
My another expanded array shape is:
(3, 2, 1, 1)

```

## Adding dimension with the expand_dims method

There is also the expand_dims Numpy function when newaxis is not enough for you.

The easiest example is to tell Numpy where to add a dimension to an array as a parameter.

```import numpy as np

my_array = np.arange(6).reshape(3, 2)
print(f"My array shape is: \n {my_array.shape}")

my_expand_dims_array = np.expand_dims(my_array, axis=2)
print(f"My expand dims array shape is: \n {my_expand_dims_array.shape}")

```

I wrote np.expand_dims(my_array, axis=2) to add the axis as a third dimension.

```My array shape is:
(3, 2)
My expand dims array shape is:
(3, 2, 1)

```

There is also the possibility to add multiple axes with expand_dims. To add multiple dimensions to a Numpy array, just use tuple values as the expand_dims parameter.

```import numpy as np

my_array = np.arange(6).reshape(3, 2)
print(f"My array shape is: \n {my_array.shape}")

my_expand_dims_array = np.expand_dims(my_array, axis=2)
print(f"My expand dims array shape is: \n {my_expand_dims_array.shape}")

my_expand_dims_array = np.expand_dims(my_array, axis=(0, 1, 4))
print(f"My expand dims array shape is: \n {my_expand_dims_array.shape}")
```

I used np.expand_dims (my_array, axis= (0, 1, 4) to add the first, second, and fifth axes.

```My array shape is:
(3, 2)
My expand dims array shape is:
(3, 2, 1)
My expand dims array shape is:
(1, 1, 3, 2, 1)
```

For sure, you know now how to add dimensions to Numpy arrays.