我有两个长度相等的列表。一个列表中的每个项目对应于另一个列表中的相同索引。我已经绘制了两个列表中的一个:
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)但这很慢,而且由于某种原因,它遗漏了一些值。
有没有更有效的方法来做到这一点?
发布于 2019-10-12 02:42:59
如果我理解正确的话,那么您希望使用xbins作为ybins,并找到相应的ynums (即计数)。
你想要np.digitize()。给它y和xbins,它会给你y元素落入的箱子的索引。
然后,您可以使用np.bincount()计算所有内容并获得ynums。
y_digitized = np.digitize(y, xbins)
ynums = np.bincount(y_digitized)https://stackoverflow.com/questions/58346764
复制相似问题