Hist は、Python 3.8 以降 (3.6 ~ 3.7 ユーザーは古いバージョンを入手します) 向けに設計されたブースト ヒストグラム用のアナリストに使いやすいフロントエンドです。新機能をご覧ください。
このライブラリは、pip を使用して PyPI からインストールできます。
python3 -m pip install "hist[plot,fit]"
プロット機能が必要ない場合は、 [plot]
および/または[fit]
追加機能をスキップできます。 [fit]
現在 WebAssembly ではサポートされていません。
Hist は現在、boost-histogram が提供するすべての機能と次の拡張機能を提供します。
Hist は軸に名前を追加します。
name=
各軸を説明する一意のラベルです。
label=
プロットに使用されるオプションの文字列です (指定しない場合、デフォルトはname
です)。
インデックス作成、射影などで名前付き軸がサポートされます。
実験的なNamedHist
は、ほとんどの形式の位置アクセスを無効にして、ユーザーに名前のみを使用させるHist
です。
Hist
クラスは、より単純な構造でbh.Histogram
拡張します。
flow=False
構築時に軸のフローをオフにする簡単な方法です。
ストレージは文字列で指定できます。
storage=
省略でき、文字列とストレージは位置指定できます。
data=
既存のデータでヒストグラムを初期化できます。
Hist.from_columns
使用して、DataFrame または dict で初期化できます。
boost-histogram (またはその他の拡張機能) を使用して前後にキャストできます。
追加のインポートを必要としないインポート不要の構築システムである 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 (Unified Histogram Indexing) システムの拡張機能:
j
サフィックスを使用して、アクセスまたはスライスのデータ座標に切り替えます。
スライスにj
サフィックスを使用して再ビンします。
文字列を直接使用して、文字列カテゴリ軸にインデックスを付けることができます。
簡単なプロット ルーチンにより探索が促進されます。
.plot()
1D および 2D プロットを提供します (または、 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(range(10), name="y", label="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 チェックアウトから、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) によって提供されました。この資料に記載されている意見、調査結果、結論、または推奨事項は著者のものであり、必ずしも米国科学財団の見解を反映しているわけではありません。