首页 > 解决方案 > Excel 的 SUMIF 函数的 Python 列表或 NumPy 等价物是什么?

问题描述

我有一个二维数组:

expenses = np.array([['jim', 'sam', 'bill', 'sam'],[1,2,6,5]])

我想知道新数组中每个唯一人员的总费用,而无需对任何名称进行硬编码(实际列表很长),以便得到如下输出:

totals = [['jim', 'sam', 'bill'],[1,7,6]]

有没有办法用列表或 NumPy 做到这一点?我不想为此使用熊猫。

提前致谢!

标签: pythonarrayslistnumpy

解决方案


names = np.asarray(['jim', 'sam', 'bill', 'sam'])
values = np.asarray([1, 2, 6, 5])
result = {name: values[names == name].sum() for name in np.unique(names)}

推荐阅读