pyarrow.compute.min_max#

pyarrow.compute.min_max(array, /, *, skip_nulls=True, min_count=1, options=None, memory_pool=None)#

Compute the minimum and maximum values of a numeric array.

Null values are ignored by default. This can be changed through ScalarAggregateOptions.

Parameters:
arrayArray-like

Argument to compute function.

skip_nullsbool, default True

Whether to skip (ignore) nulls in the input. If False, any null in the input forces the output to null.

min_countint, default 1

Minimum number of non-null values in the input. If the number of non-null values is below min_count, the output is null.

optionspyarrow.compute.ScalarAggregateOptions, optional

Alternative way of passing options.

memory_poolpyarrow.MemoryPool, optional

If not passed, will allocate memory from the default memory pool.

Examples

>>> import pyarrow as pa
>>> import pyarrow.compute as pc
>>> arr1 = pa.array([1, 1, 2, 2, 3, 2, 2, 2])
>>> pc.min_max(arr1)
<pyarrow.StructScalar: [('min', 1), ('max', 3)]>

Using skip_nulls to handle null values.

>>> arr2 = pa.array([1.0, None, 2.0, 3.0])
>>> pc.min_max(arr2)
<pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
>>> pc.min_max(arr2, skip_nulls=False)
<pyarrow.StructScalar: [('min', None), ('max', None)]>

Using ScalarAggregateOptions to control minimum number of non-null values.

>>> arr3 = pa.array([1.0, None, float("nan"), 3.0])
>>> pc.min_max(arr3)
<pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
>>> pc.min_max(arr3, options=pc.ScalarAggregateOptions(min_count=3))
<pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
>>> pc.min_max(arr3, options=pc.ScalarAggregateOptions(min_count=4))
<pyarrow.StructScalar: [('min', None), ('max', None)]>

This function also works with string values.

>>> arr4 = pa.array(["z", None, "y", "x"])
>>> pc.min_max(arr4)
<pyarrow.StructScalar: [('min', 'x'), ('max', 'z')]>