ak.fill_none — Awkward Array documentation

# ak.fill_none

Defined in awkward.operations.structure on line 2791.

ak.fill_none(array, value, axis=-1, highlevel=True, behavior=None)
  Parameters:

    - array – Data in which to replace None with a given value.

    - value – Data with which to replace None.

    - axis (None or int) – If None, replace all None values in the array with the given value; if an 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.layout.Content` subclass.

    - behavior (None or dict) – Custom `ak.behavior` for the output array, if high-level.

Replaces missing values (None) with a given `value`.

For example, in the following `array`,

    ak.Array([[1.1, None, 2.2], [], [None, 3.3, 4.4]])

The None values could be replaced with `0` by

    >>> ak.fill_none(array, 0)
    <Array [[1.1, 0, 2.2], [], [0, 3.3, 4.4]] type='3 * var * float64'>

The replacement value doesn’t strictly need the same type as the surrounding data. For example, the None values could also be replaced by a string.

    >>> ak.fill_none(array, "hi")
    <Array [[1.1, 'hi', 2.2], ... ['hi', 3.3, 4.4]] type='3 * var * union[float64, s...'>

The list content now has a union type:

    >>> ak.type(ak.fill_none(array, "hi"))
    3 * var * union[float64, string]

The values could be floating-point numbers or strings.