Hist es una interfaz amigable para los analistas para boost-histogram, diseñada para Python 3.8+ (los usuarios 3.6-3.7 obtienen versiones anteriores). Vea las novedades.
Puedes instalar esta biblioteca desde PyPI con pip:
python3 -m pip install " hist[plot,fit] "
Si no necesita las funciones de trazado, puede omitir los extras [plot]
y/o [fit]
. [fit]
actualmente no es compatible con WebAssembly.
Actualmente, Hist proporciona todo lo que ofrece boost-histogram y las siguientes mejoras:
Hist aumenta los ejes con nombres:
name=
es una etiqueta única que describe cada eje.label=
es una cadena opcional que se utiliza en el trazado (el valor predeterminado es name
si no se proporciona).NamedHist
experimental es un Hist
que deshabilita la mayoría de las formas de acceso posicional, lo que obliga a los usuarios a usar solo nombres. La clase Hist
aumenta bh.Histogram
con una construcción más simple:
flow=False
es una forma rápida de desactivar el flujo de los ejes en construcción.storage=
se puede omitir, las cadenas y los almacenamientos pueden ser posicionales.data=
puede inicializar un histograma con datos existentes.Hist.from_columns
se puede utilizar para inicializar con un DataFrame o dict.Hist admite QuickConstruct, un sistema de construcción libre de importaciones que no requiere importaciones adicionales:
Hist.new.().().()
.Regular
) o cortos ( Reg
).data=
) pueden guardarse en el almacenamiento.Funciones de histograma extendido:
.name
y .label
, como ejes..density()
calcula la densidad como una matriz..profile(remove_ax)
puede convertir un histograma ND COUNT en un histograma (N-1)D MEAN..sort(axis)
admite ordenar un histograma por un eje categórico. Opcionalmente, toma una función para ordenar..fill_flattened(...)
se aplanará y rellenará, incluida la compatibilidad con AwkwardArray..integrate(...)
, que toma los argumentos opuestos como .project
.Hist implementa UHI+; una extensión del sistema UHI (Unified Histogram Indexing) diseñada para una interactividad sin importaciones:
j
para cambiar a coordenadas de datos en acceso o sectores.j
en los cortes para volver a combinar.Las rutinas de trazado rápido fomentan la exploración:
.plot()
proporciona gráficos 1D y 2D (o use plot1d()
, plot2d()
).plot2d_full()
muestra proyectos 1D alrededor de un gráfico 2D..plot_ratio(...)
crea un gráfico de relación entre el histograma y otro histograma o invocable..plot_pull(...)
realiza un gráfico de extracción..plot_pie()
crea un gráfico circular..show()
proporciona una buena impresión str usando Histoprint.Pilas: trabajar con grupos de histogramas con ejes idénticos
h.stack(axis)
, usando el índice o el nombre de un eje (los ejes StrCategory
son ideales).hist.stacks.Stack(h1, h2, ...)
, o usar from_iter
o from_dict
..plot()
y .show()
, con nombres (las etiquetas de trazado tienen por defecto la información de los ejes originales)..project
, *
, +
y -
.Nuevos módulos
intervals
admiten intervalos de cobertura frecuentistas.Listo para el cuaderno: Hist tiene una magnífica representación en el cuaderno.
from hist import Hist
# Quick construction, no other imports needed:
h = (
Hist . new . Reg ( 10 , 0 , 1 , name = "x" , label = "x-axis" )
. Var ( range ( 10 ), name = "y" , label = "y-axis" )
. Int64 ()
)
# Filling by names is allowed:
h . fill ( y = [ 1 , 4 , 6 ], x = [ 3 , 5 , 2 ])
# Names can be used to manipulate the histogram:
h . project ( "x" )
h [{ "y" : 0.5j + 3 , "x" : 5j }]
# You can access data coordinates or rebin with a `j` suffix:
h [ 0.3j :, :: 2j ] # x from .3 to the end, y is rebinned by 2
# Elegant plotting functions:
h . plot ()
h . plot2d_full ()
h . plot_pull ( Callable )
Desde un checkout de git, use nox o ejecute:
python -m pip install -e .[dev]
Consulte Pautas de contribución para obtener información sobre cómo configurar un entorno de desarrollo.
Nos gustaría agradecer a los contribuyentes que hicieron posible este proyecto (clave emoji):
Henry Schreiner ? | nino lau ? | Chris Burr | Nick Amin | Eduardo Rodrigues | Andrzej Novak | Mateo Feickert |
Kyle Cranmer | Daniel Antrim | nicolas smith | Michael Eliachevitch | Jonás Eschle |
Este proyecto sigue la especificación de todos los contribuyentes.
Esta biblioteca fue desarrollada principalmente por Henry Schreiner y Nino Lau.
El apoyo para este trabajo fue proporcionado por el acuerdo cooperativo de la Fundación Nacional de Ciencias OAC-1836650 (IRIS-HEP) y OAC-1450377 (DIANA/HEP). Cualquier opinión, hallazgo, conclusión o recomendación expresada en este material pertenece a los autores y no refleja necesariamente los puntos de vista de la National Science Foundation.