Python: Slice Notation on NumPy Arrays

Python: Slice Notation on NumPy Arrays


The term slicing in programming usually refers to obtaining a substring, sub-tuple, or sublist from a string, tuple, or list respectively.

Python offers an array of straightforward ways to slice not only these three but any iterable. An iterable is, as the name suggests, any object that can be iterated over.

In this article, we'll go over everything you need to know about Slicing Numpy Arrays in Python.

NumPy Array slicing

The most common way to slice a NumPy array is by using the : operator with the following syntax:


The start parameter represents the starting index, end is the ending index, and step is the number of items that are "stepped" over.

NumPy is a free Python package that offers, among other things, n-dimensional arrays.

Slicing 1D (one dimensional) arrays in NumPy can be done with the same notation as slicing regular lists in Python:

import numpy as np
arr = np.array([1,2,3,4])


[1 2 3]
[1 3]

2D NumPy Array Slicing

A 2D array in NumPy is an array of arrays, a 3D array is an array of arrays of arrays and so forth. A 2D array can be represented as a matrix like so:

import numpy
arr = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

Let's print this matrix out:

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

Slicing a 2D array can eighter result in an array or a matrix. The syntax that results in a matrix would be:

arr[startx:endx:stepx, starty:endy:stepy]

The syntax that results in an array:

arr[startx:endx:stepx, const]
arr[const, starty:endy:stepy]

Free eBook: Git Essentials

Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!

Utilizing this syntax results in a matrix who's elements are the colums in the range from startx to endx on the x-axis, and rows in the range from starty to endy on the y-axis of the original matrix:

Let's take a look at how we can slice this matrix and what the slicing results in:

import numpy

arr = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])
print("The original matrix:")

print("A sliced submatrix:")

print("A sliced subarray:")

print("A sliced submatrix:")

print("A sliced subarray:")

This code segment prints out:

The original matrix:
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
A sliced submatrix:
[[ 7  8]
 [11 12]
 [15 16]]
A sliced subarray:
[5 6 7 8]
A sliced submatrix:
[[ 4]
 [ 8]
A sliced subarray:
[ 4  8 12 16]


Slicing any sequence in Python is easy, simple, and intuitive. Negative indexing offers an easy way to acquire the first or last few elements of a sequence, or reverse its order.

In this article, we've covered how to slice Python's NumPy arrays.

Last Updated: November 5th, 2020
Was this article helpful?

Improve your dev skills!

Get tutorials, guides, and dev jobs in your inbox.

No spam ever. Unsubscribe at any time. Read our Privacy Policy.

Kristina PopovicAuthor

CS student with a passion for juggling and math.

Want a remote job?

    Prepping for an interview?

    • Improve your skills by solving one coding problem every day
    • Get the solutions the next morning via email
    • Practice on actual problems asked by top companies, like:

    Make Clarity from Data - Quickly Learn Data Visualization with Python

    Learn the landscape of Data Visualization tools in Python - work with Seaborn, Plotly, and Bokeh, and excel in Matplotlib!

    From simple plot types to ridge plots, surface plots and spectrograms - understand your data and learn to draw conclusions from it.

    © 2013-2022 Stack Abuse. All rights reserved.