将一个数组中的唯一值映射到另一个数组的相应总和
我有两个数组。下面显示的是每个的预览:
[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 将是第二个新数组中的第一个值数组。
我知道我的措辞不好,但希望我的问题足够清楚。谢谢你。使用任何包都可以。
回答
由于您对任何软件包都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