ak.merge_union_of_records#
Defined in awkward.operations.ak_merge_union_of_records on line 22.
- ak.merge_union_of_records(array, axis=-1, *, highlevel=True, behavior=None, attrs=None)#
- Parameters:
array – Array-like data (anything
ak.to_layout
recognizes).axis (int) – The dimension at which this operation is applied. The outermost dimension is
0
, followed by1
, etc., and negative values count backward from the innermost:-1
is the innermost dimension,-2
is the next level up, etc.highlevel (bool) – If True, return an
ak.Array
; otherwise, return a low-levelak.contents.Content
subclass.behavior (None or dict) – Custom
ak.behavior
for the output array, if high-level.attrs (None or dict) – Custom attributes for the output array, if high-level.
Simplifies unions of records, e.g.
>>> array = ak.concatenate(([{"a": 1}], [{"b": 2}]))
>>> array
<Array [{a: 1}, {b: 2}] type='2 * union[{a: int64}, {b: int64}]'>
into records of options, i.e.
>>> ak.merge_union_of_records(array)
<Array [{a: 1, b: None}, {a: None, ...}] type='2 * {a: ?int64, b: ?int64}'>
Missing records are preserved in the result, e.g.
>>> array = ak.concatenate(([{"a": 1}], [{"b": 2}, None]))
>>> array
<Array [{a: 1}, {b: 2}, None] type='3 * union[{a: int64}, ?{b: int64}]'>
>>> ak.merge_union_of_records(array)
<Array [{a: 1, b: None}, {...}, None] type='3 * ?{a: ?int64, b: ?int64}'>