直方图彼此关联的两个数据集

时间:2019-10-11 18:35:14

标签: python numpy histogram binning

我有两个长度相等的列表。一个列表中的每个项目对应于另一列表中的相同索引。 我已经对两个列表之一进行了直方图:

xnums, xbins = np.histogram(x)

我需要一种快速的方法来相应地对相应的数据进行装箱,即与x的装箱方式相对应地将数据装在y中。 我尝试过:

ybins = []    

for i in range(len(xnums)):
     yi = []
         for j in range(len(y)):
             if x[j] >= xbins[i] and x[j] < xbins[i+1]:
                 yi.append(y[j])
             elif i == len(xnums) and x[j] == max(x):
                 yi.append(y[j])
     ybins.append(yi)

但这很慢,由于某种原因,它会丢失一些值。

有没有更有效的方法?

1 个答案:

答案 0 :(得分:0)

如果我的理解正确,那么您想将xbins用作ybins,并找到相应的ynums(即计数)。

您想要np.digitize()。给它yxbins,它将为您提供y元素所属的bin的索引。

然后,您可以使用np.bincount()来计算所有内容并获得ynums

y_digitized = np.digitize(y, xbins)
ynums = np.bincount(y_digitized)