python - 如何根据类似条目在 python 中对 ND 数组求和?
问题描述
假设我在 python 中有一个 ND 数组,由以下方案表示:
["Event ID", "Event Location", "Event Cost"]
data = \
[[1, 0, 500]
[1, 0, 250]
[1, 1, 300]
[2, 0, 750]
[2, 1, 400]
[2, 1, 500]]
如何折叠此数组以总结在同一事件位置发生的具有相同事件 ID 的条目的成本?这将在最后给我以下数组:
[[1, 0, 750]
[1, 1, 300]
[2, 0, 750]
[2, 1, 900]]
解决方案
这是itertools.groupby的经典用例:
import itertools
result = [
[i, loc, sum(cost for _, _, cost in costs)]
for (i, loc), costs in itertools.groupby(data, key=lambda t: (t[0], t[1]))
]
推荐阅读
- php - Laravel - 创建方法的旧输入
- javascript - 无法使用 Firebase 数据填充下拉列表
- javascript - TypedJs 库在浏览器控制台中出现 DevTools 错误
- php - 如何检查对象的变量是否为空?
- python - TensorFlow 警告:您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:AVX2 FMA
- java - BOOT-INF/lib 中的一个 jar 中可用的类的 ClassNotFoundException
- c# - Windows 身份验证和本地数据库用户身份验证
- angularjs - 正则表达式空字符串或数字
- python-3.x - 如何加速 cplex 解决方案池?
- c++ - 将多资源添加到 c++ 并将它们提取到临时文件夹以使用