Skip to content

Array Slicing

Array Slicing

Multiple values stored within an array can be accessed simultaneously with array slicing. To pull out a section or slice of an array, the colon operator : is used when calling the index. The general form is:

<slice> = <array>[start:stop]

Where <slice> is the slice or section of the array object <array>. The index of the slice is specified in [start:stop]. Remember Python counting starts at 0 and ends at n-1. The index [0:2] pulls the first two values out of an array. The index [1:3] pulls the second and third values out of an array.

An example of slicing the first two elements out of an array is below.

In [1]:
import numpy as np

a = np.array([2, 4, 6]) b = a[0:2] print(b)

[2 4]

On either sides of the colon, a blank stands for "default".

  • [:2] corresponds to [start=default:stop=2]
  • [1:] corresponds to [start=1:stop=default]

Therefore, the slicing operation [:2] pulls out the first through the third values in an array. The slicing operation [1:] pull out the second through the last values in an array.

The example below illustrates the default stop value is the last value in the array.

In [2]:
import numpy as np

a = np.array([2, 4, 6, 8]) print(a) b = a[1:] print(b)

[2 4 6 8]
[4 6 8]

The next examples shows the default start value is the first value in the array.
In [3]:
import numpy as np

a = np.array([2, 4, 6, 8]) print(a) b = a[:3] print(b)

[2 4 6 8]
[2 4 6]

The following indexing operations output the same array.
In [4]:
import numpy as np

a = np.array([2, 4, 6, 8]) b = a[0:4] print(b) c = a[:4] print(c) d = a[0:] print(d) e = a[:] print(e)

[2 4 6 8]
[2 4 6 8]
[2 4 6 8]
[2 4 6 8]

Slicing 2D Arrays

2D NumPy arrays can be sliced with the general form:

<slice> = <array>[start_row:end_row, start_col:end_col]

The code section below creates a two row by four column array and indexes out the first two rows and the first three columns.

In [5]:
import numpy as np

a = np.array([[2, 4, 6, 8], [10, 20, 30, 40]]) print(a) b = a[0:2, 0:3] print(b)

[[ 2  4  6  8]
 [10 20 30 40]]
[[ 2  4  6]
 [10 20 30]]

The code section below slices out the first two rows and all columns from array a.
In [6]:
import numpy as np

a = np.array([[2, 4, 6, 8], [10, 20, 30, 40]]) b = a[:2, :] #[first two rows, all columns] print(b)

[[ 2  4  6  8]
 [10 20 30 40]]

Again, a blank represents defaults the first index or the last index. The colon operator all by itself also represents "all" (default start: default stop).
In [7]:
import numpy as np

a = np.array([[2, 4, 6, 8], [10, 20, 30, 40]]) b = a[:,:] #[all rows, all columns] print(b)

[[ 2  4  6  8]
 [10 20 30 40]]