You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Uproot 3能否写入包含数组的TBranches?技术确认问询

关于Uproot写入含数组的TBranches的确认

首先明确回答:是的,Uproot(尤其是Uproot 4及更高版本)完全支持向TTree写入包含数组的TBranches,包括固定长度数组、jagged(不规则)数组等多种类型。

支持的数组类型及写入示例

  • 固定长度数组:可以直接用NumPy的固定长度数组作为分支数据写入,示例代码如下:
    import uproot
    import numpy as np
    
    with uproot.recreate("output.root") as file:
        # 创建固定长度为5的整数数组
        data = np.array([[1,2,3,4,5], [6,7,8,9,10]], dtype=np.int32)
        file["tree"] = {"branch_with_fixed_array": data}
    
  • Jagged(不规则)数组:Uproot官方推荐使用awkward.Array(Awkward Arrays库的核心类型)来写入不规则长度的数组,示例如下:
    import uproot
    import awkward as ak
    
    with uproot.recreate("output.root") as file:
        # 创建不规则长度的数组
        jagged_data = ak.Array([[1,2], [3,4,5], [6]])
        file["tree"] = {"branch_with_jagged_array": jagged_data}
    

相关文档位置

Uproot的官方文档中,关于数组型分支写入的内容主要集中在两个核心区域:

  • TTree写入指南章节:这里会详细讲解不同数据类型(包括各类数组)与ROOT分支的映射规则,以及写入时的参数配置细节。
  • Awkward Arrays集成部分:由于Uproot与Awkward深度绑定,文档里的Awkward相关板块有大量针对不规则数组写入的示例和原理说明。

另外,你在GitHub上看到的jagged数组相关讨论,很多是早期版本的功能迭代记录,现在这些功能已经稳定集成到正式版本中,官方文档会同步更新对应的使用说明。

内容的提问来源于stack exchange,提问作者Lech Wiktor Piotrowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:56:10