gpt4 book ai didi

python - 汇总矩阵中的每个列值

转载 作者:行者123 更新时间:2023-12-04 08:51:32 27 4
gpt4 key购买 nike

这是数据。

 day_value = {
'android':[1,0,0,0,0,0,1],
'iphone':[0,1,0,1,0,0,0],
'web':[0,1,1,0,1,0,0],
}


device_rollup = {
'overall':['iphone','android','web'],
'mobile':['iphone','android'],
}

rollup_l7 = {
'overall': 6,
'mobile': 4,
}

如果每列的值都相同,我们必须将其汇总为 1 而不是将其相加。总体总数应为 6 ((1,0,0)+(0,1,1)+(0,0,1)+(0,1,0)+ (0,0,1)+ (1 ,0,0)-> 1+1+1+1+1+1 =6)

现在我可以像这样将所有值相加。

overall_val = sum(sum(v) for k,v in day_value.items() if k in device_rollup['overall'] )
mobile_val = sum(sum(v) for k,v in day_value.items() if k in device_rollup['mobile'] )

rollup_l7= {'overall':overall_val, 'mobile':mobile_val}
print(rollups_l7)

但是,我不想累加,而是想汇总每个柱状值。

我们是否需要将列表转换为二进制,然后再转换回整数?

我不太确定如何在不使用 numpy 的情况下在常规 python 中实现

最佳答案

我想我找到了答案。

overall = sum([x | y | z  for x,y,z in zip(day_value['android'], day_value['iphone'],day_value['web'])])
mobile = sum([x | y for x,y in zip(day_value['android'], day_value['iphone'])])

rollup_l7 = {'overall':overall, 'mobile':mobile}
print(rollup_l7)

关于python - 汇总矩阵中的每个列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64077677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com