Adventures in Machine Learning

Mastering NumPy’s reshape() function: Manipulating arrays made easy

Python is an all-purpose programming language with diverse software development capabilities. One of its most powerful and widely used libraries is NumPy. NumPy, or Numerical Python, is a Python module used for scientific computing, data analysis, and machine learning, among other things.

It provides a fast and effortless interface to perform numerical operations on large arrays, matrices, and datasets. One of NumPy’s essential functions is the reshape() function, which we’ll examine in this article.

Understanding Python numpy.reshape() function

Overview of numpy module

NumPy’s technique of scientific computing is based on arrays and matrices. Arrays can contain any data type, including scalar, complex, float, and integer.

NumPy offers a vast array of mathematical operations to manipulate these arrays. NumPy includes several submodules, each with specialized functions, that make processing of data very fast and efficient.

Some of the available tasks are sorting, searching, statistical operations, image processing, and linear algebra. These functionalities make NumPy the go-to library for machine learning and data analytics.

Explanation of numpy.reshape() function

The reshape() function is a NumPy module function utilized to change the shape of an array without modifying its contents. Generally, reshape() returns a new array with a new shape but maintains the initial data.

That function can also be used to make higher-dimensional arrays into lower dimensions. The way to use it is simple; as long as it follows a given format.

The format for using it is a = numpy.reshape(arr, newshape [, order=’C’]) It is essential to note that it returns a new array.

Retention of array size

One of the most crucial features of numpy.reshape() is it retains the original array size while changing the shape of the array. When an operation is performed on an array, it results in a new array.

Reshaping only modifies the structure of an existing array and does not affect the data content, which eliminates the need to copy the data in memory, making it memory efficient. By default, reshape() refers to the order parameter of the original array, ‘C,’ to reshape the new array’s elements.

By default, it will use ‘C’ order. Syntax of Python numpy.reshape() function

Parameters of reshape() function

The reshape() function includes two essential parameters, arr and shape. Arr refers to the existing array that one would want to update; it can be of any dimension._shape is the second parameter; it specifies the new dimensions one wants the array to take up.

It is usually a tuple object that describes the new array.

Shape tuple

The shape tuple defines the new dimensions of the array. It represents the lengths of each axis of the new array.

The size of the tuple should be equal to the total size of the array. The dimensions of the array and shape tuple should be compatible, which is where NumPy’s broadcasting rules come in.

Broadcasting rules add dimensions if necessary to make arrays of perfect shape. The reshaping operation is never destructive, making it easy to undo using the reshape() function.

Possible values for shape parameter

The most crucial aspect of the shape parameter is the fact that it must match the size of the initial array. The size of the final array must be equal to the size of the initial array.

The size encompasses all the elements of the array. There are various possibilities that the shape parameter might take.

It can either take an integer or a tuple of integers. When an integer is passed as a parameter, the reshape() function makes a 1-Dimension array with that length.

When a tuple is passed, the elements refer to the dimensions of the new array.


NumPy’s reshape() function is an essential tool for any developer working with arrays. It makes reshaping of arrays very easy to handle, by creating a new array with a structure similar to the original array.

The size of the array must be maintained when changing the shape of the array. This article has provided an explanation of the NumPy reshape() function while covering the necessary parameters to create a new array.

NumPy has more functions that developers can work with to process their mathematical operations or data analysis tasks. NumPy reshape() function shaves off development hours by making array reshaping more efficient.NumPy is an essential library in Python, which offers a broad range of functions for scientific computing, statistics, and data analysis.

One of its primary functions is the reshape() function. It is a powerful tool that enables developers to manipulate arrays, matrices, and datasets.

In this article, we will see various examples of how to use NumPy’s reshape() function to reshape an array or matrix, and we’ll explore different dimensions of arrays, including 1-D, 2-D, and 3-D arrays.

Reshaping 1-D array into 2-D array

The most simple applications of reshape() function is to transition a single-dimensional array into a two-dimensional array. In this example, we’ll create a one-dimensional array using NumPy’s arange() function and then convert it into a two-dimensional version.


import numpy as np

arr = np.arange(10)

print(“Original Array : n”, arr)

arr_2d = arr.reshape(2, 5)

print(“Reshaped 2D Array : n”, arr_2d)




Original Array :

[0 1 2 3 4 5 6 7 8 9]

Reshaped 2D Array :

[[0 1 2 3 4]

[5 6 7 8 9]]


The output shows that we’ve successfully reshaped the original one-dimensional array into a 2-dimensional array. Here, we used the arange() function to generate a one-dimensional array from 0 to 9.

We then used the reshape() function to create a 2D array with dimensions (2,5). Our original array contains ten elements, so to reshape it into a 2D array, we divided it equally into two rows and five columns.

The reshape function took the original array and created the new array without affecting the original array in any way.

Reshaping 1-D array into 3-D array

Next, we’ll demonstrate how to reshape a 1D array into a 3D array. This example is similar to the previous example.

However, instead of a 2D array, we’ll create a 3D array. “`python

import numpy as np

arr = np.arange(27)

print(“Original Array : n”, arr)

arr_3d = arr.reshape(3, 3, 3) #3X3X3 = 27

print(“Reshaped 3D Array : n”, arr_3d)




Original Array :

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]

Reshaped 3D Array :

[[[ 0 1 2]

[ 3 4 5]

[ 6 7 8]]

[[ 9 10 11]

[12 13 14]

[15 16 17]]

[[18 19 20]

[21 22 23]

[24 25 26]]]


We started by creating a 1D array of 27 numbers using the arange() function. Then we reshaped the array with the shape of (3, 3, 3) using the reshape function.

The new array has three dimensions: the first dimension has three arrays, the second dimension has three rows, and the third dimension has three columns. The reshape function allows us to reshape the original array to an array of any dimension, as long as the total number of elements remains the same.

Reshaping 2-D array into 1-D array

Finally, we’ll demonstrate how to reshape a 2D array into a 1D array. This operation involves specifying the number of columns using the -1 parameter.


import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

print(“Original Array : n”, arr)

arr_1d = arr.reshape(-1)

print(“Reshaped 1D Array : n”, arr_1d)




Original Array :

[[1 2 3]

[4 5 6]]

Reshaped 1D Array :

[1 2 3 4 5 6]


In this example, we started by creating a 2D array with two rows and three columns. We then used the reshape() function to create a 1D array by setting the number of rows to -1, which means that NumPy will figure out the required number of rows by itself.

Finally, we printed the reshaped array. Here, we had two rows and three columns, which created six elements, and we used the reshape() function to convert it to a 1D array with six elements.


The reshape() function is a powerful tool provided in the NumPy library that developers and data analysts use to manipulate arrays, matrices, and datasets. The functions are used in a wide range of applications, including data analysis, statistics, and scientific computing.

The examples provided in this article demonstrate how to reshape random one-dimensional, two-dimensional, and three-dimensional arrays. Beginners can easily follow along with the examples and understand the basic functionality of the reshape() function.

Readers should experiment with the reshape() function and come up with creative ways in which to manipulate arrays to get desired outcomes. In this article, we explored NumPy’s reshape() function and its purpose in manipulating arrays, matrices, and datasets in scientific computing, data analysis, and machine learning applications.

We discussed the possible values for shape parameter, shape tuple, and the parameters of the reshape() function in reshaping 1-D, 2-D, and 3-Dimensional arrays. Through in-depth examples, we demonstrated how the reshape() function works to convert one-dimensional arrays into two- or three-dimensional arrays, and two-dimensional arrays into one-dimensional arrays.

By understanding how to manipulate arrays with NumPy’s reshape() function efficiently, programmers and data analysts can gain new insights and make informed decisions from data.