Python|从矩阵中删除假行
有时,在处理数据时,尤其是在机器学习领域,我们需要处理大量不完整或空的数据。我们有时需要消除在任何列中不包含值的行。让我们讨论一些删除所有False 值作为列表列的行的方法。
方法 #1:使用列表理解 + count() + len()
我们可以使用列表理解配方来执行这个特定的任务,结合len和 count函数来检查与列表长度相等的相似性元素计数器。
# Python3 code to demonstrate
# removing False rows in matrix
# using list comprehension + count() + len()
# initializing matrix
test_list = [[1, True, 2], [False, False, 3],
[False, False, False], [1, 0, 1]]
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + count() + len()
# removing False rows in matrix
res = [sub for sub in test_list
if sub.count(False) != len(sub)]
# print result
print("The list after removal of False rows : " + str(res))
输出 :
The original list : [[1, True, 2], [False, False, 3], [False, False, False], [1, 0, 1]]
The list after removal of False rows : [[1, True, 2], [False, False, 3], [1, 0, 1]]
方法 #2:使用列表理解 + set()
也可以通过将整行转换为一个集合,然后检查单个值 False 集合是否相等并在找到匹配项时删除来执行此特定任务。
# Python3 code to demonstrate
# removing False rows in matrix
# using list comprehension + set()
# initializing matrix
test_list = [[1, True, 2], [False, False, 3],
[False, False, False], [1, 0, 1]]
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + set()
# removing False rows in matrix
res = [sub for sub in test_list if set(sub) != {False}]
# print result
print("The list after removal of False rows : " + str(res))
输出 :
The original list : [[1, True, 2], [False, False, 3], [False, False, False], [1, 0, 1]]
The list after removal of False rows : [[1, True, 2], [False, False, 3], [1, 0, 1]]