es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Rango personalizado en el histograma de numpy.

Intentando mostrar datos de un histograma usando numpy;

NUMBER_OF_PRICE_BRACKETS = 8
HISTOGRAM_EDGE_RANGE = (0, 1_000_000)

hist, bin_edges = numpy.histogram(price_list, bins=NUMBER_OF_PRICE_BRACKETS, range=HISTOGRAM_EDGE_RANGE)

Obtengo la siguiente salida utilizando el código anterior

hist: [0, 6, 6, 0, 0, 0, 0, 0],
bin_edges: [0.0, 125000.0, 250000.0, 375000.0, 500000.0, 625000.0, 750000.0, 875000.0, 1000000.0]

Los límites se calculan automáticamente. ¿Hay alguna opción para forzar que los límites se creen como en el ejemplo de salida anterior?

hist: [0, 6, 6, 0, 0, 0, 0, 0]
bin_edges: [0.0, 100000.0, 150000.0, 300000.0, 450000.0, 600000.0, 750000.0, 900000.0, 1000000.0]

Tal vez usando la opción range como

range=(0, 1_000_000, 150)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes forzar la creación de los bordes utilizando un rango específico agregando un tercer argumento al parámetro range en numpy.histogram(). Este tercer argumento especifica el ancho de cada bin.

    Por ejemplo, para crear bins de ancho 150, puedes establecer range=(0, 1_000_000, 150) en la llamada a numpy.histogram(). Esto creará los mismos bordes que en el ejemplo de salida:

    hist: [0, 6, 6, 0, 0, 0, 0, 0]
    bin_edges: [0.0, 100000.0, 250000.0, 400000.0, 550000.0, 700000.0, 850000.0, 1000000.0]
    

    Ten en cuenta que como el parámetro range incluye el límite superior, el último bin incluirá todos los valores mayores o iguales a 850.000.

Comments are closed.