uproot3 可以写包含数组的 TBranches 吗?

问题描述

uproot 3 文档中有信息,即 uproot 只能写入每个条目包含 1 个值的分支。另一方面,我可以在 uproot Github 上看到一些关于编写锯齿状数组等的主题。所以,我想确保:可以 uproot 将包含数组的 TBranches 写入 TTree 吗?如果有,是否在任何地方都有记录?

谢谢!

解决方法

当它被移植到 Uproot 4 时会得到更好的记录,但是我们现在关于在 Uproot 3 中编写锯齿状数组的最好的文档是拉取请求和相关问题(都相互关联):

https://github.com/scikit-hep/uproot3/pull/477

以下是测试中的示例:

import uproot3
import awkward0

a = awkward0.fromiter([[0],[1,2],[10,11,12]])

with uproot3.recreate(filename,compression=None) as f:
    f["t"] = uproot3.newtree({
        "branch": uproot3.newbranch(numpy.dtype(">i4"),size="n")
    })
    f["t"].extend({"branch": a,"n": [1,2,3]})

f = ROOT.TFile.Open(filename)
tree = f.Get("t")
for i,event in enumerate(tree):
    assert(numpy.all([x for x in event.branch] == a[i]))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...