Равномерно распределенные элементы массивов
Пример. Имеется numpy массив состоящий из 1, 2, 3. Как поделить его на 5 массивов, чтобы частота вхождения 1, 2, 3 в каждый из них была равна или очень близка к частоте появления этих чисел в изначальном массиве?
Т.е. дано a - массив, k - число новых массивов. Нужно вывести k массивов примерно одинаковой длины (отличаются не более чем на 1), которые являются непересекающимися частями исходного массива и которые удовлетворят "частотному" условию.
Как это реализовать?
Моя идея - словарь. Ключ - элемент массива. Значение - число вхождений. А дальше собрать эти k массивов.
А можно ли методами векторизации? Здесь ведь дискретное равномерное распределение. По идее должно быть более лаконичное решение.