Contents

## NumPy – Array Slicing

Array slicing is a process of reading elements in a specific index range.

If the array is multi-dimensional, we can specify index in multi-dimensions to get the specific array slice.

## Slicing 1-D NumPy Array

To slice a 1-D Array from specific starting position upto a specific ending position, use the following syntax.

`arr[start:end]`

Element at the `end`

index is not included.

In the following program, we take a 1-D NumPy Array, and do slicing with the slice `[1:5]`

.

**Python Program**

```
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr[1:5])
```

Run **Output**

`[2 3 4 5]`

**Explanation**

```
array : [1, 2, 3, 4, 5, 6, 7, 8]
index : 0 1 2 3 4 5 6 7
| |
start end
slice : 2, 3, 4, 5
```

If `start`

is not specified, then the starting index of the array `0`

is taken. If `end`

is not specified, then length of the array is taken.

## Slicing 1-D NumPy Array in Steps

We can also slice the array in steps.

The syntax to slice a 1-D NumPy Array in steps is

`arr[start:end:step]`

In the following program, we take a 1-D NumPy Array, and slice it in steps of 2.

**Python Program**

```
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr[1:5:2])
```

Run **Output**

`[2 4]`

**Explanation**

```
array : [1, 2, 3, 4, 5, 6, 7, 8]
index : 0 1 2 3 4 5 6 7
| |
start end
step=2: * *
slice : 2, 4
```

## Slicing 2-D NumPy Array

Just like a 1-D Array, we can also slice a 2-D Array.

To slice a 2-D Array from specific starting position upto a specific ending position, in the two dimensions, use the following syntax.

`arr[start_dim1:end_dim1, start_dim2:end_dim2]`

where

`start_dim1:end_dim1`

is the start and end index of slice in the first dimension.`start_dim2:end_dim2`

is the start and end index of slice in the second dimension.

In the following program, we take a 2-D NumPy Array, and slice it.

**Python Program**

```
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[1, 1:3])
```

Run **Output**

`[7 8]`

**Explanation**

```
array : [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
1st dim (indexes) : 0 1
2nd dim (indexes) : 0 1 2 3 4 0 1 2 3 4
arr[1, :] : [6, 7, 8, 9, 10]
arr[1, 1:3] : 7, 8
```

Slicing [1, 1:3] means get the elements in the second row, from index 1 to 3 (element at index=3 not included).

In the following program, we take a NumPy Array, and slice it .

**Python Program**

```
import numpy as np
arr = np.array([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])
print(arr[0:2, 1:3])
```

Run **Output**

```
[[2 3]
[7 8]]
```

**Explanation**

## Slicing 3-D NumPy Array

As the number of dimensions increase, just increase the number of slices in the square brackets, separated by comma.

To slice a 3-D Array from specific starting position upto a specific ending position, in different dimensions, use the following syntax.

`arr[start_dim1:end_dim1, start_dim2:end_dim2, start_dim3:end_dim3]`

where

`start_dim1:end_dim1`

is the start and end index of slice in the first dimension.`start_dim2:end_dim2`

is the start and end index of slice in the second dimension.`start_dim3:end_dim3`

is the start and end index of slice in the third dimension.

Instead of both start:end, we can specify only a single index. In that case, element at that index is only selected for slicing.

In the following program, we take a 3-D NumPy Array, and slice it.

**Python Program**

```
import numpy as np
arr = np.array([[[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10]],
[[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]]])
print(arr[0, 1, 1:4])
```

Run **Output**

`[7 8 9]`

## Summary

In this NumPy Tutorial, we learned how to slice a NumPy Array, how to slice a multi-dimensional NumPy Array, with examples.