如何在ak.zip生成的Jagged Array中添加新字段
解决Awkward Array添加新字段的问题
ak.zip生成的对象属于不可变的RecordArray,无法直接通过下标赋值(muons.Muon['pt2'] = ...)添加新字段,正确的实现方式有两种:
方法一:创建zip时直接包含新字段
在初始构建muons对象时,就把pt2字段加入字典中:
muons = ak.zip({ "pt": arrays["Muon_pt"], "eta": arrays["Muon_eta"], "phi": arrays["Muon_phi"], "charge": arrays["Muon_charge"], "pt2": 2 * arrays["Muon_pt"], })
完成后即可直接通过muons.pt2访问该字段。
方法二:用ak.with_field添加字段
如果需要在已有的muons对象基础上追加字段,使用Awkward Array提供的ak.with_field方法:
muons = ak.with_field(muons, 2 * arrays["Muon_pt"], "pt2")
该方法会返回包含新字段的新RecordArray,同样支持muons.pt2的调用方式。
内容的提问来源于stack exchange,提问作者Zhenxuan
相关产品推荐
相关产品推荐

