atribuindo pontos às posições
Qual é uma boa maneira de classificar valores numéricos em um determinado intervalo? Por exemplo, suponha que eu tenha uma lista de valores e que queira colocá-los em N bin pelo intervalo. No momento, faço algo assim:
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))
onde min_index retorna o índice do valor mínimo. A idéia é que você pode encontrar a posição na qual o ponto se encaixa, vendo em qual posição ela tem a menor diferença.
Mas acho que isso tem casos extremos estranhos. O que estou procurando é uma boa representação dos compartimentos, idealmente aqueles que estão meio fechados e meio abertos (para que não haja maneira de atribuir um ponto a dois compartimentos), ou seja,
bin1 = [x1, x2)
bin2 = [x2, x3)
bin3 = [x3, x4)
etc...
qual é uma boa maneira de fazer isso no Python, usando numpy / scipy? Eu só estou preocupado aqui com binning valores inteiros.
muito obrigado pela sua ajuda.