У меня есть 10 бункеров:Python - Как сгенерировать индекс binning для списка?
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 тыс., А реальная длина (значения) составляет от ~ 10 к до 750 тыс.
Есть ли способ сделать это последовательно? Мне нужно поддерживать порядок значений, но разделяйте список значений равномерно, чтобы было «справедливое» и «четное» количество диапазонов значений, распределенных по каждому из бункеров.
Я думаю, что я могу использовать numpy.digitize, но поглядев, я не могу видеть, как создать список «» Binned
Что вы подразумеваете под биннинг значений последовательно? Вы можете уточнить? Размещение binnedValues выглядит немного произвольно, за исключением того, что оно находится в том же порядке, что и исходный список. –
Место размещения является суровым, поскольку я пытался продемонстрировать, чего я пытаюсь достичь. Если len (значения) = 20, то каждый бит будет иметь 2 значения. Если len (значения) = 30, то каждый бит будет иметь 3 значения. Я пытаюсь понять, как «равномерно» распределять значения в ящики, когда говорят len (values) = 27 (так что 7 бункеров будут иметь 3 значения, а 3 - 2) - как я могу равномерно распределять ящики разного размера в диапазон ящиков ... лучше? –
Каков ваш ожидаемый результат, если у вас было 26 предметов? – sberry