首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用uproot解析使用2D数组的结构

使用uproot解析使用2D数组的结构
EN

Stack Overflow用户
提问于 2020-06-23 01:06:37
回答 1查看 65关注 0票数 1

我需要读取一个根树,其中包含一个存储在结构中的2D数组,为此我想使用uproot。

例如:下面的代码片段在一个结构中创建了一个同时具有二维数组和二维数组的树。Uproot本身读取2D数组没有问题,但不知道如何在结构中解析它。

有没有办法告诉uproot如何解析这个结构?

代码语言:javascript
复制
Float_t x2[15][2]={{0}};
struct POINT{
  Float_t x[15][2]={{0}};
  Float_t y[15][2]={{0}};
};
POINT point;
TTree tree("T","ROOT tree with 2D array and 2D array in struct");
tree.Branch("point",&point,"x[15][2]:y[15][2]");
tree.Branch("x2",x2,"x2[15][2]/F");
EN

回答 1

Stack Overflow用户

发布于 2020-06-23 01:52:52

虽然我无法在没有文件的情况下对此进行测试,但下面的代码应该允许您读取该数据结构:

代码语言:javascript
复制
import numpy as np
import uproot

dtype = np.dtype([("x", ">f4", (15, 2)), ("y", ">f4", (15, 2))])
interpretation = uproot.asdtype(dtype)
points_array = tree["point"].array(interpretation)

这是一个问题,Uproot不能识别这种结构,尽管我可以想象为什么不能:这是一个特殊情况(固定大小的维度)的特殊情况(叶子列表)。如果您可以发布一个小的(< 1MB)示例文件作为一个根治GitHub问题,我将研究自动识别此interpretation的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62519766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档