Summary: in this tutorial, you’ll learn how to use the numpy reshape()
function to change the shape of an array.
Introduction to the numpy reshape() function
A shape of an array stores the number of dimensions (or axes) and the number of elements on each dimension. The shape
property returns a tuple that describes the shape of an array.
The
function changes the shape of an array without changing its elements. Here’s the syntax of the reshape()
function:reshape()
numpy.reshape(a, newshape, order='C')
Code language: Python (python)
In this syntax, the reshape()
function changes the shape of the array a
to the newshape
but keep the number of elements the same.
The
function is equivalent to calling the reshape()
method on the array a:reshape()
a.reshape(newshape, order='C')
Code language: Python (python)
NumPy reshape() function examples
Let’s take some examples of using the reshape()
function.
1) Using numpy reshape() function with 1-D array example
The following example uses the numpy reshape()
function to change a 1-D array with 4 elements to a 2-D array:
import numpy as np
a = np.arange(1, 5)
print(a)
b = np.reshape(a, (2, 2))
print(b)
Code language: Python (python)
Output:
[1 2 3 4]
[[1 2]
[3 4]]
Code language: Python (python)
How it works.
First, create a 1-D array with four numbers from 1 to 4 by using the
function:arange()
a = np.arange(1, 5)
print(a)
Code language: Python (python)
Second, change the shape of array a to an array with two dimensions, each dimension has 2 elements:
b = np.reshape(a, (2, 2))
print(b)
Code language: Python (python)
2) Numpy reshape() returns a view
Note that array b is a view of array a. It means that if you change an element of array b, the change is reflected in array a. For example:
import numpy as np
a = np.arange(1, 5)
b = np.reshape(a, (2, 2))
# change the element [0,0]
b[0, 0] = 0
print(b)
print(a)
Code language: Python (python)
Output:
[[0 2]
[3 4]]
[0 2 3 4]
Code language: Python (python)
In this example, we change the element at index [0,0] in the array b. The change is also reflected in the array a.
Summary
- Use the numpy
reshape()
function to change the shape of an array without changing its elements. - You can change the shape of an array as long as the number of elements is the same.