python - 根据 np.histogram 分配的另一个列表 list/gets 总结 list/array

python - sum up list/array according to how another list list/gets assigned by np.histogram

我有两个等长的列表a, b。我想从 a 创建一个直方图,并将 b 的值汇总到一个新列表 c 中,根据 a 的元素分配给哪个 bin。

a = [0.3, 1.2, 1.8, 0.5, ...]
b = [1, 1, 0, 0, ...]

hist = np.histogram(a, bins=[0.0, 0.5, 1., 1.5, 2.])

在上面的示例中,b[0] 将被添加到 c[0],因为 a[0] 被添加到 hist[0]b[1] 将被添加到 c[2] 等。在不使用循环的情况下执行此操作的可扩展方法是什么? (循环对于大型列表来说太慢了。)

为此,我推荐 pandas

import pandas as pd
buckets = pd.cut(a, bins=[0.0,0.5,1, 1.5, 2])

result = pd.Series(b).groupby(buckets).sum()

输出:

(0.0, 0.5]    1
(0.5, 1.0]    0
(1.0, 1.5]    1
(1.5, 2.0]    0
dtype: int64