Я складываю 2d-массив (x по y) в Python в ячейки его значения x (заданного в «bin»), используя np.digitize:
elements_to_bins = digitize(vals, bins)
где "vals" - это двумерный массив, т. Е .:
vals = array([[1, v1], [2, v2], ...]).
elements_to_bins просто говорит, в какую корзину попадает каждый элемент. Затем я хочу получить список, длина которого равна количеству бинов в «корзинах», и каждый элемент возвращает у-размерность «vals», которая попадает в этот лот. Я делаю это прямо сейчас:
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)
Есть ли более элегантный / простой способ сделать это? Все, что мне нужно, - это список списков значений y, которые попадают в каждую ячейку.
спасибо.