Что такое хороший способ численных значений 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? Меня здесь интересуют только бинарные целые значения.
Большое спасибо за помощь.
как примечание стороны: я более чем готов использовать matplotlib в дополнение к scipy/numpy, если он имеет эту функциональность. Я думаю, что функции, такие как «hist», должны делать что-то подобное, за исключением того, что я не ищу никаких заговоров. – user248237dfsf