Che cosa è un buon modo per collocare valori numerici in un determinato intervallo? Ad esempio, supponiamo di avere un elenco di valori e voglio dividerli in N bin per il loro intervallo. In questo momento, faccio qualcosa del genere:Assegnazione di punti ai raccoglitori
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))
dove min_index restituisce l'indice del valore minimo. L'idea è che puoi trovare il cestino in cui cade il punto, vedendo con quale bin ha la più piccola differenza.
Ma penso che questo abbia strani casi limite. Quello che sto cercando è una buona rappresentazione della cassonetti, idealmente quelli che sono chiusi mezza aperta (in modo che non c'è modo di assegnare un punto a due cassonetti) la metà, vale a dire
bin1 = [x1, x2)
bin2 = [x2, x3)
bin3 = [x3, x4)
etc...
che cosa è un buon modo per fai questo in Python, usando numpy/scipy? Mi interessa solo qui con i valori interi di binning.
grazie mille per il vostro aiuto.
come nota a margine: sono più che disposto a usare matplotlib oltre a scipy/numpy se ha questa funzionalità. Immagino che funzioni come 'hist' debbano fare qualcosa del genere, eccetto che qui non sto cercando nessun tracciato. – user248237dfsf