Open In App

Python – Remove the row if all elements equal to N

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

Sometimes, while handling data, especially in the Machine Learning domain, we need to go through a lot of similar N-equal data. We sometimes need to eliminate the rows which are all equal to N. Let’s discuss certain ways to remove the rows that have all N values as list columns. 

Method #1: Using list comprehension + count() + len() We can perform this particular task using the list comprehension recipe, partnered with the combination of len and count function to check for similarity element counter equating to the length of list. 

Python3




# Python3 code to demonstrate
# N row deletion in Matrix
# using list comprehension + count() + len()
 
# initializing matrix
test_list = [[1, 4, 2], [False, 9, 3],
             [6, 6, 6], [1, 0, 1]]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing N
N = 6
 
# using list comprehension + count() + len()
# N row deletion in Matrix
res = [sub for sub in test_list if sub.count(N) != len(sub)]
 
# print result
print("The list after removal of N rows : " + str(res))


Output : 

The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]

Time complexity: O(M^N) as the number of combinations generated is M choose N.
Auxiliary space: O(M^N) as the size of the resultant list is also M choose N.

Method #2: Using list comprehension + set() This particular task can also be performed by converting the entire row into a set and then checking for the single value N set for equality and removing if a match is found. 

Python3




# Python3 code to demonstrate
# N row deletion in Matrix
# using list comprehension + set()
 
# initializing matrix
test_list = [[1, 4, 2], [False, 9, 3],
             [6, 6, 6], [1, 0, 1]]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing N
N = 6
 
# using list comprehension + set()
# N row deletion in Matrix
res = [sub for sub in test_list if set(sub) != {N}]
 
# print result
print("The list after removal of N rows : " + str(res))


Output : 

The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]

Time complexity: O(M^N) as the number of combinations generated is M choose N.
Auxiliary space: O(M^N) as the size of the resultant list is also M choose N.

Method #3 : Using len() method

Python3




# Python3 code to demonstrate
# N row deletion in Matrix
 
# initializing matrix
test_list = [[1, 4, 2], [False, 9, 3],
             [6, 6, 6], [1, 0, 1]]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing N
N = 6
res = []
for i in test_list:
    if([i[0]]*len(i) != i):
        res.append(i)
 
# print result
print("The list after removal of N rows : " + str(res))


Output

The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]

Time complexity: O(M^N) as the number of combinations generated is M choose N.
Auxiliary space: O(M^N) as the size of the resultant list is also M choose N.

Method #4 : Using remove()+filter()+copy() +lambda functions

Python3




# Python3 code to demonstrate
# N row deletion in Matrix
 
# initializing matrix
test_list = [[1, 4, 2], [False, 9, 3],
             [6, 6, 6], [1, 0, 1]]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing N
N = 6
 
for i in test_list.copy():
    temp = list(filter(lambda x: x == 6, i))
    if(len(temp) == len(i)):
        test_list.remove(i)
 
# print result
print("The list after removal of N rows : " + str(test_list))


Output

The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]

Time Complexity: O(N*N)

Auxiliary Space : O(1)

Method #5 : Using a for loop

Python3




test_list = [[1, 4, 2], [False, 9, 3],
             [6, 6, 6], [1, 0, 1]]
# printing original list
print("The original list : " + str(test_list))
N = 6
result = []
for row in test_list:
    if N not in row:
        result.append(row)
# print result
print("The list after removal of N rows : " + str(result))
#This code is contributed by Jyothi pinjala


Output

The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]

Time Complexity: O(N)

Auxiliary Space : O(N)

Method #6 : Using operator.countOf() method

Approach 

  1. Initiated for loop to traverse the nested list
  2. Used if condition to check whether count(operator.countOf()) of N is equal to length of list 
  3. If the condition is satisfied append the row to output list
  4. Display the output list

Python3




# Python3 code to demonstrate
# N row deletion in Matrix
 
# initializing matrix
test_list = [[1, 4, 2], [False, 9, 3],
            [6, 6, 6], [1, 0, 1]]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing N
N = 6
res = []
import operator
for i in test_list:
    if(operator.countOf(i,N)!=len(i)):
        res.append(i)
 
# print result
print("The list after removal of N rows : " + str(res))


Output

The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]

Time Complexity: O(N)

Auxiliary Space : O(N)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads