프로젝트 소개

Awkward Array는 임의 길이의 리스트, 레코드, 혼합 타입, 누락 데이터와 같은 중첩되고 가변 크기의 데이터 구조를 NumPy와 유사한 친숙한 관용구를 사용하여 조작하도록 설계된 Python 라이브러리입니다. ### 주요 기능: - **불규칙 데이터 지원**: 표준 NumPy 배열이 기본적으로 처리할 수 없는 JSON 유사, 이질적, 톱니 모양의 배열을 효율적으로 처리할 수 있습니다. - **NumPy 유사 API**: 복잡한 중첩 구조를 슬라이싱, 필터링, 변환하기 위한 직관적이고 선언적인 구문을 제공하여 반복적인 Python 코드를 줄입니다. - **고성능**: 동적 타이핑에도 불구하고 연산이 컴파일되고 최적화되어 순수 Python 루프에 비해 극적인 속도 향상(종종 10배에서 100배)과 메모리 오버헤드 감소를 제공합니다. Numba와 원활하게 통합되어 JIT(Just-In-Time) 컴파일을 지원합니다. - **간편한 설치**: PyPI와 conda-forge에서 순수 Python 패키지로 제공되며, 최대 플랫폼 성능을 위해 선택적 컴파일 C++ 종속성(`awkward-cpp`)을 포함합니다. ### 성능: 대규모 중첩 데이터셋을 포함하는 벤치마크에서 Awkward Array는 동등한 네이티브 Python 구현에 필요한 메모리의 일부만 사용하여 몇 초 만에 연산을 완료하므로 고에너지 물리학, 과학 컴퓨팅, 대규모 머신러닝 파이프라인에 이상적입니다.