python - 汇总矩阵中的每个列值
问题描述
这是数据。
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)
推荐阅读
- math - 给定两个过渡率或违约率矩阵,定量评估两个评级机构使用的质量控制或方法
- angular - 在 Angular 表格中对数据进行排序并显示项目
- python - TypeError: issubclass() arg 1 必须是一个类,而我很确定 arg 1 是一个类
- spring-integration - Spring Integration Flow Level CorrelationId 用于记录和跟踪流
- spring-cloud - 如何在 Spring Cloud 数据流 2.6.1 中从私有仓库注册应用程序
- java - 从数据库读取数据时显示十进制值?
- html - 均匀大小的表格列而不设置宽度
- c# - DryIoc 递归依赖异常与 Factory (Func<>)
- loops - RcppArmadillo:for循环中的负索引
- javascript - 为什么悬停选择器在跨度中不起作用?