ak.fill_none ------------ .. py:module: ak.fill_none Defined in `awkward.operations.ak_fill_none `__ on `line 22 `__. .. py:function:: ak.fill_none(array, value, axis=-1, *, highlevel=True, behavior=None, attrs=None) :param array: Array-like data (anything :py:obj:`ak.to_layout` recognizes). :param value: Data with which to replace None. :param axis: 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. If a str, it is interpreted as the name of the axis which maps to an int if named axes are present. Named axes are attached to an array using :py:obj:`ak.with_named_axis` and removed with :py:obj:`ak.without_named_axis`; also see the `Named axes user guide <../../user-guide/how-to-array-properties-named-axis.html>`__. :type axis: None or int or str :param highlevel: If True, return an :py:obj:`ak.Array`; otherwise, return a low-level :py:obj:`ak.contents.Content` subclass. :type highlevel: bool :param behavior: Custom :py:obj:`ak.behavior` for the output array, if high-level. :type behavior: None or dict :param attrs: Custom attributes for the output array, if high-level. :type attrs: None or dict Replaces missing values (None) with a given ``value``. For example, in the following .. code-block:: python >>> array = ak.Array([[1.1, None, 2.2], [], [None, 3.3, 4.4]]) The None values could be replaced with ``0`` by .. code-block:: python >>> ak.fill_none(array, 0) 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. .. code-block:: python >>> ak.fill_none(array, "hi") The list content now has a union type: .. code-block:: python >>> ak.fill_none(array, "hi").type.show() 3 * var * union[ float64, string ] The values could be floating-point numbers or strings.