Convert a 1D array to a 2D Numpy array
Last Updated :
08 Sep, 2022
Here we will learn how to convert 1D NumPy to 2D NumPy Using two methods. Numpy is a Python package that consists of multidimensional array objects and a collection of operations or routines to perform various operations on the array and processing of the array.
Convert a 1D array to a 2D Numpy array using reshape
This package consists of a function called numpy.reshape which is used to convert a 1-D array into a 2-D array of required dimensions (n x m). This function gives a new required shape without changing the data of the 1-D array.
Examples 1:
Convert a 1-D array into a 2-D array of required dimensions (n x m).
Python3
import numpy as np
arr = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])
arr1 = arr.reshape( 4 , 2 )
print ( 'After reshaping having dimension 4x2:' )
print (arr1)
print ( '\n' )
arr2 = arr.reshape( 2 , 4 )
print ( 'After reshaping having dimension 2x4:' )
print (arr2)
print ( '\n' )
|
Output:
After reshaping having dimension 4x2:
[[1 2]
[3 4]
[5 6]
[7 8]]
After reshaping having dimension 2x4:
[[1 2 3 4]
[5 6 7 8]]
Example 2:
Let us see an important observation whether we can reshape a 1-D array into any 2-D array.
Python3
import numpy as np
arr = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])
print ( 'Before reshaping:' )
print (arr)
print ( '\n' )
arr1 = arr.reshape( 3 , 3 )
print ( 'After reshaping having dimension 3x3:' )
print (arr1)
print ( '\n' )
|
Output:
This concludes that the number of elements should be equal to the product of dimension i.e. 3×3=9 but total elements = 8;
Example 3:
Another example is that we can use the reshape method without specifying the exact number for one of the dimensions. Just pass -1 as the value and NumPy will calculate the number.
Python3
import numpy as np
arr = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])
print ( 'Before reshaping:' )
print (arr)
print ( '\n' )
arr1 = arr.reshape( 2 , 2 , - 1 )
print ( 'After reshaping:' )
print (arr1)
print ( '\n' )
|
Output:
Before reshaping:
[1 2 3 4 5 6 7 8]
After reshaping:
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
Convert a 1D array to a 2D Numpy array using numpy.reshape
Here, we are using np.reshape to convert a 1D array to 2 D array. You can divide the number of elements in your array by ncols.
Python3
import numpy as np
arr = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 ])
B = np.reshape(arr, ( - 1 , 2 ))
print ( '2D Numpy array: \n' , B)
|
Output:
2D Numpy array:
[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]
Share your thoughts in the comments
Please Login to comment...