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로 초기화할 수 있습니다.
부스트 히스토그램(또는 다른 확장)을 사용하여 앞뒤로 전송할 수 있습니다.
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(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(범위(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: Boost-Histogram을 활용한 분석을 위한 히스토그램 ?
2020-07-07 SciPy 절차 ?
2020-07-17 PyHEP 2020 ?
이 라이브러리는 주로 Henry Schreiner와 Nino Lau가 개발했습니다.
이 작업에 대한 지원은 국립과학재단 협력 계약 OAC-1836650(IRIS-HEP) 및 OAC-1450377(DIANA/HEP)에 의해 제공되었습니다. 이 자료에 표현된 모든 의견, 조사 결과, 결론 또는 권장 사항은 저자의 것이며 국립 과학 재단의 견해를 반드시 반영하는 것은 아닙니다.