从一个数组中映射唯一值到另一个数组对应的总和

3

我有两个数组,下面是每个数组的预览:

[0.25 0.5  0.75 ... 0.   0.   0.25]
[0.51725357 0.51725357 0.51725357 ... 0.56406901 0.51725357 0.51725357]

您可能会注意到第二个数组中有很多重复的值。我想要做的是创建两个具有相同长度的新数组。其中一个数组由我列出的第二个数组中所有唯一值组成。另一个数组由来自第一个数组且对应于第二个数组中唯一值的所有值的总和组成。
例如,在我展示的数组中,0.51725357的累积和为1.75,因此如果0.51725357是第一个新数组的第一个条目,则1.75将是第二个新数组的第一个值。
我知道我没有表达清楚,但希望我的问题足够清晰。谢谢。使用任何软件包均可。
1个回答

5

既然您对任何包都持开放态度,我建议使用pandas来实现groupby功能:

import pandas as pd

# just for display purposes:
>>> pd.options.display.precision = 10

l1 = [0.25 ,0.5 , 0.75,0.   ,0.   ,0.25]
l2 = [0.51725357 ,0.51725357 ,0.51725357,0.56406901 ,0.51725357, 0.51725357]

>>> pd.DataFrame({"l1": l1, "l2": l2}).groupby("l2").sum()
 
              l1
l2              
0.51725357  1.75
0.56406901  0.00

1
正是我所需要的,谢谢! - lowlyprogrammer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接