NumPy | reshape method
Start your free 7-days trial now!
NumPy's reshape(~)
method returns a new NumPy array with the desired shape. If the reshaped array contains more values than the original array, then numbers will be repeated.
Parameters
1. a
| array-like
The input array.
2. shape
| int
or tuple
of int
The desired shape. If -1
is passed, then the shape is inferred. Check our examples below for clarification.
Return value
A new NumPy array with the desired shape.
Examples
Converting from 1D to 2D
Consider the following 1D array:
a
array([1, 2, 3, 4, 5, 6])
To change this to a 2D array with 2 rows and 3 columns:
np.reshape(a, (2,3))
array([[1, 2, 3], [4, 5, 6]])
To convert a 1D array to a 2D array with one element:
array([[1, 2, 3, 4, 5, 6]])
Converting from 2D to 1D
Suppose we have the following 2D array:
a
array([[1, 2], [3, 4]])
To obtain the 1D representation:
np.reshape(a, 4)
array([1, 2, 3, 4])
Here, we could simply use the ravel(~)
method to flatten the array:
Inferring the shape
The value -1
in shape
tells NumPy to infer the suitable shape. For instance:
np.reshape([1,2,3,4], [-1,1])
array([[1], [2], [3], [4]])
We could have manually specified [4,-1]
as the shape, but the number of resulting rows can be inferred from:
the number of values there are in the array
the number of columns (
1
in this case).