У меня есть 10 бункеров:
bins = [0,1,2,3,4,5,6,7,8,9]
У меня есть список из 25 значений:
values = [10,0,0,14,14,123,235,0,0,0,0,0,12,12,1235,23,234,15,15,23,136,34,34,37,45]
Я хочу последовательно помещать значения в ячейки, чтобы каждое значение группировалось в свою корзину:
binnedValues = [[10,0],[0,14,14],[123,235],[0,0,0],[0,0],[12,12,1235],[23,234],[15,15,23],[136,34,34],[37,45]]
Как видите, количество значений в корзине не всегда одинаково (как len(values) != len(bins)
)
Кроме того, у меня есть много разных списков значений, которые имеют разные размеры. Поэтому мне нужно сделать это несколько раз для одного и того же количества ячеек, но с разной длиной списков значений. Вышеприведенный пример - реальный размер ячейки составляет 10 КБ, а реальный len (значения) составляет от ~ 10 КБ до ~ 750 КБ.
Есть ли способ сделать это последовательно? Мне нужно сохранить порядок значений, но равномерно разделить список значений, чтобы было «справедливое» и «четное» количество значений диапазона, распределенных по каждому из бункеров.
Я думаю, что могу использовать numpy.digitize, но, посмотрев, я не вижу, как сгенерировать «бинированный» список
binnedValues
выглядит несколько произвольно, за исключением того, что оно находится в том же порядке, что и исходный список. - person Ehtesh Choudhury   schedule 05.12.2012