跳转到主要内容

纯Python和Numpy的ROOT I/O。

项目描述

uproot

uproot(最初为μproot,意为“微Python ROOT”)是使用Python和Numpy读取和写入ROOT文件格式的读取器和写入器。与标准的C++ ROOT实现不同,uproot仅是一个I/O库,主要目的是将数据流式传输到Python中的机器学习库。与PyROOT和root_numpy不同,uproot不依赖于C++ ROOT。相反,它使用Numpy将数据块(篮子)从ROOT文件转换为Numpy数组。

Python并不一定意味着慢。只要数据块(篮子)很大,这种“一次一个数组”的方法甚至可能比“一次一个事件”的C++更快。下面显示,只要篮子大小为数十千字节或更大,使用uproot将数据读入数组的速度就比C++ ROOT(左侧)和root_numpy(右侧)快(对于不同物理样本集合中每个事件中变数数量的μ子;数值越高越好)。

https://raw.githubusercontent.com/scikit-hep/uproot3/master/docs/root-none-muon.png https://raw.githubusercontent.com/scikit-hep/uproot3/master/docs/rootnumpy-none-muon.png

uproot 不由 ROOT 项目团队维护,因此请在此处提交错误报告,而不是在 ROOT 论坛上,请通过 GitHub 问题 提交。谢谢!

安装

像安装其他 Python 包一样安装 uproot

pip install uproot3                      # maybe with sudo or --user, or in virtualenv

pip 安装程序会自动安装严格依赖项;conda 安装程序也会安装可选依赖项(除了 Pandas)。

严格依赖项

可选依赖项

  • lz4 读取/写入 lz4 压缩的 ROOT 文件

  • xxhash 读取/写入 lz4 压缩的 ROOT 文件

  • lzma 在 Python 2 中读取/写入 lzma 压缩的 ROOT 文件

  • xrootd 通过 XRootD 访问远程文件

  • requests 通过 HTTP 访问远程文件

  • pandas 用 Pandas DataFrame 替代 Numpy 数组

提示:运行 uproot 不需要 C++ ROOT。

教程

请参阅 项目主页 中的 教程

在 Binder 上运行 该教程

教程内容

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

uproot3-3.14.4.tar.gz (142.2 kB 查看哈希值)

上传于 源码

构建分布版

uproot3-3.14.4-py3-none-any.whl (117.5 kB 查看哈希)

上传于 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面