Hist 是一个分析人员友好的 boost-histogram 前端,专为 Python 3.8+ 设计(3.6-3.7 用户使用旧版本)。看看有什么新内容。
您可以使用 pip 从 PyPI 安装此库:
python3 -m pip install "hist[plot,fit]"
如果您不需要绘图功能,则可以跳过[plot]
和/或[fit]
附加功能。 WebAssembly 目前不支持[fit]
。
Hist 目前提供了 boost-histogram 提供的所有功能,以及以下增强功能:
Hist 用名称增强轴:
name=
是描述每个轴的唯一标签。
label=
是一个可选字符串,用于绘图(如果未提供,则默认为name
)。
索引、投影等支持命名轴。
实验性NamedHist
是一个禁用大多数形式的位置访问的Hist
,强制用户仅使用名称。
Hist
类通过更简单的构造增强了bh.Histogram
:
flow=False
是在构造时关闭轴流的快速方法。
存储可以通过字符串给出。
storage=
可以省略,字符串和存储可以是位置的。
data=
可以用现有数据初始化直方图。
Hist.from_columns
可用于使用 DataFrame 或 dict 进行初始化。
您可以使用 boost-histogram (或任何其他扩展)来回投射。
Hist 支持 QuickConstruct,这是一个免导入构建系统,不需要额外导入:
使用Hist.new.<axis>().<axis>().<storage>()
。
轴名称可以是完整的 ( Regular
) 或简短的 ( Reg
)。
直方图参数(如data=
)可以放入存储中。
扩展直方图功能:
直接支持.name
和.label
,如轴。
.density()
将密度计算为数组。
.profile(remove_ax)
可以将 ND COUNT 直方图转换为 (N-1)D MEAN 直方图。
.sort(axis)
支持按分类轴对直方图进行排序。可以选择使用一个函数来排序。
.fill_flattened(...)
将展平并填充,包括对 AwkwardArray 的支持。
.integrate(...)
,它采用与.project
相反的参数。
Hist 实现 UHI+; UHI(统一直方图索引)系统的扩展,专为免导入交互性而设计:
使用j
后缀切换到访问或切片中的数据坐标。
在切片上使用j
后缀来重新分类。
字符串可直接用于索引字符串类别轴。
快速绘图例程鼓励探索:
.plot()
提供一维和二维图(或使用plot1d()
、 plot2d()
)
.plot2d_full()
显示围绕 2D 绘图的 1D 项目。
.plot_ratio(...)
在直方图和另一个直方图或可调用之间绘制比率图。
.plot_pull(...)
执行拉图。
.plot_pie()
绘制饼图。
.show()
使用 Histoprint 提供了一个很好的 str 打印输出。
堆栈:使用具有相同轴的直方图组
可以使用h.stack(axis)
创建堆栈,使用轴的索引或名称(理想的是StrCategory
轴)。
您还可以使用hist.stacks.Stack(h1, h2, ...)
创建,或使用from_iter
或from_dict
。
您可以索引堆栈,并设置具有匹配直方图的条目。
堆栈支持.plot()
和.show()
,并带有名称(绘图标签默认为原始轴信息)。
堆栈通过.project
、 *
、 +
和-
。
新模块
intervals
支持频率覆盖间隔。
笔记本就绪:Hist 在笔记本中具有华丽的表现形式。
无需依赖
from hist import Hist# 快速构建,无需其他导入:h = (Hist.new.Reg(10, 0, 1, name="x", label="x-axis") .Var(范围(10),名称=“y”,标签=“y轴”) .Int64() )# 允许使用名称填充:h.fill(y=[1, 4, 6], x=[3, 5, 2])# 可以使用名称来操作直方图:h.project("x") h[{"y": 0.5j + 3, "x": 5j}]# 您可以访问数据坐标或使用 `j` 后缀重新装箱:h[0.3j:, ::2j] # x从.3到最后,y被2#优雅的绘图函数重新排序:h.plot()h.plot2d_full()h.plot_pull(Callable)
从 git checkout 中,使用 nox,或运行:
python -m pip install -e .[dev]
有关设置开发环境的信息,请参阅贡献指南。
我们要感谢使这个项目成为可能的贡献者(表情符号键):
亨利·施赖纳 ? | 刘毅诺 ? | 克里斯·伯尔 | 尼克·阿明 | 爱德华多·罗德里格斯 | 安德烈·诺瓦克 | 马修·费克特 |
凯尔·克兰默 | 丹尼尔·安特里姆 | 尼古拉斯·史密斯 | 迈克尔·埃利亚切维奇 | 乔纳斯·埃施勒 |
该项目遵循所有贡献者规范。
2021-07-07 PyHEP 2021 - 用于 HEP 分析的高性能直方图?
2020-09-08 IRIS-HEP/GSOC - Hist:由升压直方图驱动的直方图分析?
2020-07-07 SciPy 会议记录?
2020-07-17 PyHEP 2020 ?
该库主要由 Henry Schreiner 和 Nino Lau 开发。
这项工作由国家科学基金会合作协议 OAC-1836650 (IRIS-HEP) 和 OAC-1450377 (DIANA/HEP) 提供支持。本材料中表达的任何意见、发现、结论或建议均为作者的观点,并不一定反映国家科学基金会的观点。