【发布时间】:2011-02-14 20:13:43
【问题描述】:
我正在使用 np.digitize 将 Python 中的二维数组(x x y)分箱到其 x 值的箱中(在“箱”中给出):
elements_to_bins = digitize(vals, bins)
其中“vals”是一个二维数组,即:
vals = array([[1, v1], [2, v2], ...]).
elements_to_bins 只是说明每个元素属于哪个 bin。然后我想要做的是获取一个列表,其长度是“bins”中的 bin 数量,并且每个元素返回落入该 bin 的“vals”的 y 维度。我现在就是这样做的:
points_by_bins = []
for curr_bin in range(min(elements_to_bins), max(elements_to_bins) + 1):
curr_indx = where(elements_to_bins == curr_bin)[0]
curr_bin_vals = vals[:, curr_indx]
points_by_bins.append(curr_bin_vals)
有没有更优雅/更简单的方法来做到这一点?我所需要的只是落入每个 bin 的 y 值列表的列表。
谢谢。
【问题讨论】:
-
如果其中一个答案解决了您的问题,请将其标记为已接受(绿色复选标记)! :)