ak.fill_none — Awkward Array 2.8.2 documentation (original) (raw)
Defined in awkward.operations.ak_fill_none on line 22.
ak.fill_none(array, value, axis=-1, *, highlevel=True, behavior=None, attrs=None)#
Parameters:
- array – Array-like data (anything ak.to_layout recognizes).
- 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 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-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.
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', ...]] type='3 * var * union[float64, s...'>
The list content now has a union type:
ak.fill_none(array, "hi").type.show() 3 * var * union[ float64, string ]
The values could be floating-point numbers or strings.