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 by 1, 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-level ak.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}'>