📜  Python – 矩阵元素频率计数器

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

Python – 矩阵元素频率计数器

有时,在使用Python Matrix 时,我们可能会遇到需要查找 Matrix 中所有元素的频率的问题。这类问题可以在很多领域都有应用。让我们讨论可以执行此任务的某些方式。

方法 #1:使用Counter() + sum() + map()
上述方法的组合可用于执行此任务。在此,我们使用 Counter() 执行计算元素的任务,并使用 sum() 和 map() 将逻辑扩展到每一行。

# Python3 code to demonstrate 
# Matrix elements Frequencies Counter
# using Counter() + sum() + map()
from collections import Counter
  
# Initializing list
test_list = [[4, 5, 6], [2, 4, 5], [6, 7, 5]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Matrix elements Frequencies Counter
# using Counter() + sum() + map()
res = dict(sum(map(Counter, test_list), Counter()))
  
# printing result 
print ("The frequencies dictionary is : " + str(res))
输出 :
The original list is : [[4, 5, 6], [2, 4, 5], [6, 7, 5]]
The frequencies dictionary is : {2: 1, 4: 2, 5: 3, 6: 2, 7: 1}

方法#2:使用chain() + Counter()
上述功能的组合可用于执行此任务。在此,我们使用 chain() 展平矩阵并使用 Counter() 计算频率。

# Python3 code to demonstrate 
# Matrix elements Frequencies Counter
# using Counter() + chain()
from collections import Counter
import itertools
  
# Initializing list
test_list = [[4, 5, 6], [2, 4, 5], [6, 7, 5]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Matrix elements Frequencies Counter
# using Counter() + chain()
res = dict(Counter(itertools.chain(*test_list)))
  
# printing result 
print ("The frequencies dictionary is : " + str(res))
输出 :
The original list is : [[4, 5, 6], [2, 4, 5], [6, 7, 5]]
The frequencies dictionary is : {2: 1, 4: 2, 5: 3, 6: 2, 7: 1}