我有一个*.root文件,我正试图用uplot(uplot4)读入Python。看起来是这样的:
>>> data = up.open('file.root')
>>> data.keys()
['ring_sums;1', 'tpc_multiplicity;1', 'impact_parameter;1']
>>> data['ring_sums']
<TMatrixT<double> (version 4) at 0x0205b219d748>
如何读取tMatrix类型?使用.keys()、.values()和.items()不起作用
>>> data['ring_sums'].values()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Model_TMatrixT_3c_double_3e__v4' object has no attribute 'values'
将数据读入笨拙的数组、pandas dataframe或numpy数组的正确方法是什么
TMatrixT是一个没有任何专门代码的类,但是它可以被读取,因为它的“拖缆”(反序列化指令)包含在根文件中。因此,它是以一种相当通用的方式呈现的
您可以在
all_members
(dict)中找到对象的所有成员数据,或者使用member("memberName")
方法仅提取一个。所以,举个例子,试试看因为TMatrixT::fElements似乎是相关的。这些可能会作为一个未定型的NumPy数组(或者uproot.models.TArray,它是NumPy数组的一个子类)出现。您可能需要
reshape
将其转换为正确的形式,并且可能在其他成员(可能属于超类的成员)中找到正确的形状如果您找到了一种使用
TMatrixT
对象的好方法,并且希望它成为自动化的,可能是在values
方法中,将其添加为pull request或将其描述为feature request以进行根除(一种新的“行为”)相关问题 更多 >
编程相关推荐