Given a 2d numpy array, the task is to flatten a 2d numpy array into a 1d array. Below are a few methods to solve the task.
Method #1 : Using np.flatten()
Python3
# Python code to demonstrate # flattening a 2d numpy array # into 1d array import numpy as np ini_array1 = np.array([[ 1 , 2 , 3 ], [ 2 , 4 , 5 ], [ 1 , 2 , 3 ]]) # printing initial arrays print ("initial array", str (ini_array1)) # Multiplying arrays result = ini_array1.flatten() # printing result print ("New resulting array: ", result) |
initial array [[1 2 3] [2 4 5] [1 2 3]] New resulting array: [1 2 3 2 4 5 1 2 3]
Time complexity: O(n), where n is the total number of elements in the 2D numpy array.
Auxiliary space: O(n), as the result array is also of size n. The flatten function returns a flattened 1D array, which is stored in the “result” variable.
Method #2: Using np.ravel()
Python3
# Python code to demonstrate # flattening a 2d numpy array # into 1d array import numpy as np ini_array1 = np.array([[ 1 , 2 , 3 ], [ 2 , 4 , 5 ], [ 1 , 2 , 3 ]]) # printing initial arrays print ("initial array", str (ini_array1)) # Multiplying arrays result = ini_array1.ravel() # printing result print ("New resulting array: ", result) |
initial array [[1 2 3] [2 4 5] [1 2 3]] New resulting array: [1 2 3 2 4 5 1 2 3]
Method #3: Using np.reshape()
Python3
# Python code to demonstrate # flattening a 2d numpy array # into 1d array import numpy as np ini_array1 = np.array([[ 1 , 2 , 3 ], [ 2 , 4 , 5 ], [ 1 , 2 , 3 ]]) # printing initial arrays print ("initial array", str (ini_array1)) # Multiplying arrays result = ini_array1.reshape([ 1 , 9 ]) # printing result print ("New resulting array: ", result) |
initial array [[1 2 3] [2 4 5] [1 2 3]] New resulting array: [[1 2 3 2 4 5 1 2 3]]
Time Complexity: O(n), where n is the total number of elements in the 2D numpy array.
Auxiliary Space: O(n), as the program creates a new 1D list with the same number of elements as the original 2D array.