以下是一个解决方案的代码示例:
from collections import defaultdict
def count_nonzero_observations(groups, observations):
# 创建一个字典,用于记录每个组的非零观察数量
nonzero_counts = defaultdict(int)
# 遍历所有观察值
for group, value in observations:
# 如果观察值不为零,则增加该组的非零观察数量
if value != 0:
nonzero_counts[group] += 1
# 返回每个组的非零观察数量
return dict(nonzero_counts)
# 示例输入数据
groups = ['A', 'A', 'B', 'B', 'C']
observations = [('A', 0), ('A', 1), ('B', 2), ('B', 3), ('C', 0)]
result = count_nonzero_observations(groups, observations)
print(result) # 输出:{'A': 1, 'B': 2, 'C': 0}
在这个示例中,我们使用了defaultdict
来创建一个默认值为0的字典nonzero_counts
,用于记录每个组的非零观察数量。然后,我们遍历所有的观察值,并通过判断观察值是否为零来增加每个组的非零观察数量。最后,我们将结果以字典的形式返回。
上一篇:按组计算多样性