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