numpy.reshape() in Python - GeeksforGeeks

numpy.reshape() in Python

Last Updated : 26 Jun, 2026

numpy.reshape() is used to change the shape of a NumPy array without changing its data. It helps convert arrays between different dimensions, such as transforming a 1D array into a 2D or 3D array.

Example: The following example reshapes a 1D array containing 6 elements into a 2D array with 2 rows and 3 columns.

Python
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
res = np.reshape(arr, (2, 3))
print(res)

Output
[[1 2 3]
 [4 5 6]]

Explanation: np.reshape(arr, (2, 3)) changes the shape of the array from 1 dimension to a 2 × 3 matrix while keeping all elements in the same order.

Syntax

numpy.reshape(array, shape, order='C')

Parameters: 

  • array: Input array to reshape.
  • shape: New shape of the array. It can be an integer or a tuple of integers.
  • order (optional): C - Row-major order (default), F - Column-major order, A - Uses Fortran order if possible, otherwise C order and K - Preserves the original memory order as closely as possible.

Return Type: Returns a new array with the specified shape.

Examples

Example 1: In this example, a 1D array is converted into a 2D array with a fixed number of rows and columns. The total number of elements remains the same after reshaping.

Python
import numpy as np
a = np.arange(1, 9)
r = np.reshape(a, (4, 2))
print(r)

Output
[[1 2]
 [3 4]
 [5 6]
 [7 8]]

Explanation: np.reshape(a, (4, 2)) rearranges the 8 elements into a matrix with 4 rows and 2 columns.

Example 2: Sometimes the exact size of one dimension is not known in advance. In such cases, -1 can be used and NumPy automatically calculates the missing dimension.

Python
import numpy as np
a = np.arange(12)
r = np.reshape(a, (3, -1))
print(r)

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

Explanation: In np.reshape(a, (3, -1)), NumPy automatically determines the number of columns as 4 because the array contains 12 elements.

Example 3: By default, NumPy fills elements row by row while reshaping. This example shows how to reshape an array by filling elements column by column using the order='F' parameter.

Python
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
r = np.reshape(a, (2, 3), order='F')
print(r)

Output
[[1 3 5]
 [2 4 6]]

Explanation: order='F' reshapes the array using column-major order, so elements are filled column-wise instead of the default row-wise arrangement.

Comment