📜  Python|矩阵真求和

📅  最后修改于: 2022-05-13 01:54:31.691000             🧑  作者: Mango

Python|矩阵真求和

通过条件检查数字/元素是一个常见的问题,几乎在每个程序中都会遇到。有时,我们还需要获取与特定条件匹配的总数,以区分哪些不匹配,以供进一步使用,例如在数据科学中。让我们讨论一些可以在 Matrix 中计算 True 值的方法。

方法 #1:使用sum() + 生成器表达式
此方法使用每当生成器表达式返回 true 时将总和加 1 的技巧。当列表耗尽时,返回匹配条件的数字计数的总和。

# Python 3 code to demonstrate 
# Matrix True Summation
# using sum() + generator expression 
from itertools import chain
  
# initializing list 
test_list = [[3, False], [False, 6], [False, 9]] 
  
# printing original list 
print ("The original list is : " + str(test_list)) 
  
# using sum() + generator expression 
# Matrix True Summation
res = sum(1 for i in chain.from_iterable(test_list) if i == True) 
  
# printing result 
print ("The number of True elements: " + str(res)) 
输出 :
The original list is : [[3, True], [True, 6], [True, 9]]
The number of True elements: 3

方法#2:使用sum() + map()
map() 的任务几乎与生成器表达式相似,不同之处只是它采用的内部数据结构不同,因此效率更高。

# Python 3 code to demonstrate 
# Matrix True Summation
# using sum()+ map() 
from itertools import chain
  
# initializing list 
test_list = [[3, True], [True, 6], [True, 9]] 
  
# printing original list 
print ("The original list is : " + str(test_list)) 
  
# using sum()+ map() 
# Matrix True Summation
res = sum(map(lambda i: i == True, chain.from_iterable(test_list))) 
  
# printing result 
print ("The number of True elements: " + str(res)) 
输出 :
The original list is : [[3, True], [True, 6], [True, 9]]
The number of True elements: 3