Каким образом можно использовать числовые значения bin в определенном диапазоне? Например, предположим, что у меня есть список значений, и я хочу, чтобы они помещали их в N бункеров по их диапазону. Прямо сейчас, я делаю что-то вроде этого:
from scipy import *
num_bins = 3 # number of bins to use
values = # some array of integers...
min_val = min(values) - 1
max_val = max(values) + 1
my_bins = linspace(min_val, max_val, num_bins)
# assign point to my bins
for v in values:
best_bin = min_index(abs(my_bins - v))
где min_index возвращает индекс минимального значения. Идея состоит в том, что вы можете найти бит, в который попадает точка, видя, с каким бином он имеет наименьшую разницу.
Но я думаю, что у этого есть странные крайние случаи. То, что я ищу, является хорошим представлением бункеров, в идеале - наполовину закрытыми наполовину открытыми (так что нет способа присвоить одну точку двум ячейкам), т.е.
bin1 = [x1, x2)
bin2 = [x2, x3)
bin3 = [x3, x4)
etc...
Каков хороший способ сделать это в Python, используя numpy/scipy? Меня здесь интересуют только бинарные целые значения.
Большое спасибо за вашу помощь.