# Numpy Array Slicing

Summary: in this tutorial, you’ll learn about the numpy array slicing that extracts one or more elements from a numpy array.

## Numpy array slicing on on-dimensional arrays

NumPy arrays use brackets `[]` and `:` notations for slicing like lists. By using slices, you can select a range of elements in an array with the following syntax:

`[m:n]`

Code language: Python (python)

This slice selects elements starting with `m` and ending with `n-1`. Note that the nth element is not included. In fact, the slice `m:n` can be explicitly defined as:

`[m:n:1]`

Code language: Python (python)

The number 1 specifies that the slice selects every element between `m` and `n`.

To select every two elements, you can use the following slice:

`[m:n:2]`

Code language: Python (python)

In general, the following expression selects every `k` element between `m` and `n`:

`[m:n:k]`

Code language: Python (python)

If `k` is negative, the slice returns elements in reversed order starting from `m` to `n+1`. The following table illustrates the slicing expressions:

See the following example:

`import numpy as npa = np.arange(0, 10)`

`print('a=', a) print('a[2:5]=', a[2:5]) print('a[:]=', a[:]) print('a[0:-1]=', a[0:-1]) print('a[0:6]=', a[0:6]) print('a[7:]=', a[7:]) print('a[5:-1]=', a[5:-1]) print('a[0:5:2]=', a[0:5:2]) print('a[::-1]=', a[::-1])`

Code language: Python (python)

Output:

`a= [0 1 2 3 4 5 6 7 8 9] a[2:5]= [2 3 4] a[:]= [0 1 2 3 4 5 6 7 8 9] a[0:-1]= [0 1 2 3 4 5 6 7 8] a[0:6]= [0 1 2 3 4 5] a[7:]= [7 8 9] a[5:-1]= [5 6 7 8] a[0:5:2]= [0 2 4] a[::-1]= [9 8 7 6 5 4 3 2 1 0]`

Code language: Python (python)

## Numpy array slicing on multidimensional arrays

To slice a multidimensional array, you apply the square brackets `[]` and the `:` notation to each dimension (or axis). The slice returns a reduced array where each element matches the selection rules. For example:

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

`print(a[0:2, :])`

Code language: Python (python)

Output:

`[[1 2 3] [4 5 6]]`

Code language: Python (python)

In this example, array a is a 2-D array. In the expression `a[0:2, :]`:

First, the `0:2` selects the element at index 0 and 1, not 2 that returns:

`[[1 2 3] [4 5 6]]`

Code language: Python (python)

Then, the `:` select all elements. Therefore the whole expression returns:

`[[1 2 3] [4 5 6]]`

Code language: Python (python)

Consider another example:

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

`print(a[1:, 1:])`

Code language: Python (python)

Output:

`[[5 6] [8 9]]`

Code language: Python (python)

In the expression `a[1:, 1:]`:

First, `1:` selects the elements starting at index 1 to the last element of the first axis (or row), which returns:

`[[4 5 6] [7 8 9]]`

Code language: Python (python)

Second, `1:` selects the elements starting at index 1 to the last elements of the second axis (or column), which returns:

`[[5 6] [8 9]]`

Code language: Python (python)

## Summary

• Use slicing to extract elements from a numpy array
• Use `a[m:n:p]` to slice one-dimensional arrays.
• Use `a[m:n:p, i:j:k, ...]` to slice multidimensional arrays