We can have an application for finding the lists with the minimum value and print it. This seems quite an easy task and may also be easy to code, but having shorthands to perform the same are always helpful as this kind of problem can come in web development.
Method #1 : Using reduce() + lambda The above two function can help us achieving this particular task. The lambda function does the task of logic and iteration and reduce function does the task of returning the required result. Works in python 2 only.
Python3
# Python code to demonstrate # Minimum Sum row in Matrix # using reduce() + lambda # initializing matrix test_matrix = [[ 1 , 3 , 1 ], [ 4 , 5 , 3 ], [ 1 , 2 , 4 ]] # printing the original matrix print ( "The original matrix is : " + str (test_matrix)) # using reduce() + lambda # Minimum Sum row in Matrix res = reduce ( lambda i, j: i if sum (i) < sum (j) else j, test_matrix) # printing result print ( "Minimum sum row is : " + str (res)) |
The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]] Minimum sum row is : [1, 3, 1]
Time complexity: O(m*n), because it performs the same number of iterations as the original code.
Auxiliary space: O(m*n) as well, because it creates a dictionary with m * n keys and a list of m * n elements
Method #2: Using min() + key The min function can get the minimum of all the list and key is used to specify on what the min condition has to be applied which is summation in this case.
Python3
# Python3 code to demonstrate # Minimum Sum row in Matrix # using min() + key # initializing matrix test_matrix = [[ 1 , 3 , 1 ], [ 4 , 5 , 3 ], [ 1 , 2 , 4 ]] # printing the original matrix print ( "The original matrix is : " + str (test_matrix)) # using min() + key # Minimum Sum row in Matrix res = min (test_matrix, key = sum ) # printing result print ( "Minimum sum row is : " + str (res)) |
The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]] Minimum sum row is : [1, 3, 1]
Time complexity: O(m*n), because it performs the same number of iterations as the original code.
Auxiliary space: O(m*n) as well, because it creates a dictionary with m * n keys and a list of m * n elements
Method #3 : Using sum(),extend(),sort() and index() methods
Python3
# Python code to demonstrate # Minimum Sum row in Matrix # initializing matrix test_matrix = [[ 1 , 3 , 1 ], [ 4 , 5 , 3 ], [ 1 , 2 , 4 ]] # printing the original matrix print ( "The original matrix is : " + str (test_matrix)) a = [] for i in test_matrix: a.append( sum (i)) y = [] y.extend(a) y.sort() res = test_matrix[a.index(y[ 0 ])] # printing result print ( "Minimum sum row is : " + str (res)) |
The original matrix is : [[1, 3, 1], [4, 5, 3], [1, 2, 4]] Minimum sum row is : [1, 3, 1]
Time complexity: O(m*n), because it performs the same number of iterations as the original code.
Auxiliary space: O(m*n) as well, because it creates a dictionary with m * n keys and a list of m * n elements
Method #4: Using numpy library
Note: Install numpy module using command “pip install numpy”
Python3
# Python code to demonstrate # Minimum Sum row in Matrix # using numpy import numpy as np # initializing matrix test_matrix = np.array([[ 1 , 3 , 1 ], [ 4 , 5 , 3 ], [ 1 , 2 , 4 ]]) # printing the original matrix print ( "The original matrix is : \n" , test_matrix) # using numpy # Minimum Sum row in Matrix res = test_matrix[np.argmin(np. sum (test_matrix, axis = 1 ))] # printing result print ( "Minimum sum row is : " , res) Note: Install numpy module using command "pip install numpy" |
Output:
The original matrix is :
[[1 3 1]
[4 5 3]
[1 2 4]]
Minimum sum row is : [1 3 1]
The above code uses the numpy library to find the row with the minimum sum in the matrix. The argmin() function is used to find the index of the row with the minimum sum and the sum() function is used to calculate the sum of elements in each row. The axis parameter is set to 1 to calculate the sum of elements in each row. The result is then stored in the variable ‘res’. The time complexity is O(n) and Auxiliary space is O(1)