Open In App

Python – Row with Minimum Sum in Matrix

Last Updated : 17 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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))


Output : 

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))


Output : 

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))


Output

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)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads