Uproot 如何在“根除”中使用懒散数组?

Uproot 如何在“根除”中使用懒散数组?,uproot,Uproot,我试图从本期的文件中读取“hits”和“trks”数据作为多索引数据帧 通过以锯齿数组的形式打开树的内容,我成功地获取了数据帧中所有事件的数据。现在我想在多索引数据帧中读取“hits”和“trk”。但我不确定我是否理解tree.pandas.df(“点击”)和tree.pandas.df(“trks”)为什么不为我工作 第1期点击: 以下是我的做法: tree = uproot.open(my_file)['E'] tree.pandas.df("hits.*") 这将为断言提供一个空的断言错

我试图从本期的文件中读取“hits”和“trks”数据作为多索引数据帧

通过以锯齿数组的形式打开树的内容,我成功地获取了数据帧中所有事件的数据。现在我想在多索引数据帧中读取“hits”和“trk”。但我不确定我是否理解tree.pandas.df(“点击”)和tree.pandas.df(“trks”)为什么不为我工作

第1期点击: 以下是我的做法:

tree = uproot.open(my_file)['E']
tree.pandas.df("hits.*")
这将为断言提供一个空的断言错误

AssertionError:
但当我尝试例如:

tree.pandas.df("hits.trig")
我确实得到了一个多索引数据框,其中一列包含从树[“hits.trig”]读取的数据

第2期轨道: 注:第1版同样适用于“TRK”。然而,我能够以锯齿状数组的形式访问命中数据,而对于“trk”,在某些特定情况下是不可能的。以下是我如何处理这些案例:

tree["trks.rec_stages"].interpretation
输出为: asjagged(asdtype('>i4'),10)

然后:

我得到以下错误:

ValueError: could not broadcast input array from shape (15713) into shape (15711)
我总是使用tree.array()得到上面的错误('trks.rec_stages'、'trks.error_matrix'、'trks.fitinfo')

但当我尝试这个:

lazy_rec_stages = tree.lazyarray("trks.rec_stages")
我的数据如下所示:

<ChunkedArray [[1 3 5 ... 1 1 1] [1 3 5 ... 1 1 1] [1 3 5 ... 1 1 1] ... [1 3 5 ... 1 1 1] [1 3 5 ... 1 1 1] [1 3 5 ... 1 1 1]] at 0x7f4dabe12450>
因此,我们可以预期:

tree.lazyarray("trks.rec_stages")[0][0]
Output: "1 2 3 5 4" 
tree.lazyarray("trks.lik")[0][0] 
Output: 10
但我不确定情况是否如此,以下是我得到的:

tree.lazyarray("trks.rec_stages")[0][0]
Output: [1 2 3 4 5 6 7 8 9]
这使得很难将哪个rec_阶段与哪个TRK相关联。你能告诉我我做错了什么吗

附言:我想我使用的是最新版本的根除


感谢您的时间和考虑。

这看起来有两个(不同的)GitHub问题。Stackoverflow代表“我如何使用它?”问题。感谢您的快速回复。我创造了问题和问题
tree.lazyarray("trks.rec_stages")[0][0]
Output: "1 2 3 5 4" 
tree.lazyarray("trks.lik")[0][0] 
Output: 10
tree.lazyarray("trks.rec_stages")[0][0]
Output: [1 2 3 4 5 6 7 8 9]