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 從0.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) 提供支持。本資料中所表達的任何意見、發現、結論或建議均為作者的觀點,不一定反映美國國家科學基金會的觀點。