纯python和numpy中的根i/o。

uproot的Python项目详细描述


uproot

uproot(最初是μproot,用于“micro python root”)是ROOT file format的读者和作者,只使用python和numpy。与标准C++根实现不同,UPROT仅是I/O库,主要用于将数据流到Python中的机器学习库中。与PyROOT和RooToStudio不同,根除不依赖于C++根。相反,它使用numpy将根文件中的数据块转换为numpy数组。

python并不一定意味着慢。只要数据块(“筐”)大,这种“一次阵列”的方法甚至可以比“一次一次”的C++更快。下面,将数据读取到具有根除的数组的速率被显示为比C++根(左)和RooTyNoMyPy(右)快,只要筐是几十千兆字节或更大(对于不同物理样本集合中的每个事件的可变数量μ子,越高越好)。

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

根项目团队不维护uproot,因此这里的bug报告是GitHub issues,而不是在根论坛上。谢谢!

安装

像其他python包一样安装uproot:

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

或者使用conda

安装
conda config --add channels conda-forge  # if you haven't added conda-forge already
conda install uproot

pip安装程序会自动安装严格的依赖项;conda安装程序还会安装可选的依赖项(熊猫除外)。

严格依赖:

可选依赖项:

  • lz4读取/写入lz4压缩根文件
  • xxhash读取/写入lz4压缩根文件
  • lzma在python 2中读/写lzma压缩根文件
  • xrootd通过xrootd访问远程文件
  • requests通过http访问远程文件
  • pandas填充pandas数据帧而不是numpy数组

^ {STR 1 } $提醒:不需要c++根运行根除。< /强>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ByteArrayOutputStream的java解码属性   java S3 SDK在上载时更新单个对象,而不是创建新文件   java hibernate:无法从eclipse连接到DB   java如何在强制转换JComboBox之前检查其类型?   http从Java中的GETPOST请求方法捕获URI、资源名称,如开发人员工具中所示   java在Spring@Bean方法中返回接口的局限性   Java中的Web服务和客户端(使用Eclipse Apache Axis 2自底向上服务)某些代码会引发异常   java spring安全+rest不起作用   java将LinkedList添加到包含LinkedList的LinkedList并更改添加的LinkedList   java是否临时删除对象的属性?   java使用AnimatedGifEncoder类创建的gif图像的部分帧是不透明的   java如何高效地处理maven3时间戳快照?   java向集合对象添加另一项   java如何将动态参数传递给jquery函数   java使用libGdx桌面端口作为Android GLES20的仿真器