uproot - uproot3 可以写包含数组的 TBranches 吗?
问题描述
在 uproot 3 文档中有信息,即 uproot 只能写入每个条目包含 1 个值的分支。另一方面,我可以在 uproot Github 上看到一些关于编写锯齿状数组等的主题。所以,我想确保:可以将包含数组的 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]))
推荐阅读
- mysql - 如何通过在同一列上运行 max() 来更新列?
- ruby-on-rails - 即使修改了 active_admin.rb 中的路径,注销路径在 activeadmin 中也不起作用
- ios - 如何使用 touchIDAuthenticationAllowableReuseDuration
- python - 将组中的第一个值复制到条件成立的所有行
- django - Django模型中的ManyToManyField
- c# - 如何接收和处理 AngularJS HTTP POST 到 C#?
- android - Android Studio 编辑器以不同的格式显示代码
- android - 跨 Android 模块的 Dagger 2 子组件
- c# - 使用数据库值上的计时器刷新标签文本
- javascript - 使用 onclick 属性将值(字符串)形式的剃须刀模型传递给 JS