Skip to content

Commit

Permalink
add named array generations
Browse files Browse the repository at this point in the history
  • Loading branch information
max-sixty committed Sep 23, 2024
1 parent 5fb2794 commit 80b4c6a
Showing 1 changed file with 80 additions and 0 deletions.
80 changes: 80 additions & 0 deletions xarray/namedarray/_aggregations.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,12 @@ def count(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.count()
<xarray.NamedArray ()> Size: 8B
array(5)
"""
return self.reduce(
duck_array_ops.count,
Expand Down Expand Up @@ -115,8 +119,12 @@ def all(
... np.array([True, True, True, True, True, False], dtype=bool),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 6B
array([ True, True, True, True, True, False])
>>> na.all()
<xarray.NamedArray ()> Size: 1B
array(False)
"""
return self.reduce(
duck_array_ops.array_all,
Expand Down Expand Up @@ -165,8 +173,12 @@ def any(
... np.array([True, True, True, True, True, False], dtype=bool),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 6B
array([ True, True, True, True, True, False])
>>> na.any()
<xarray.NamedArray ()> Size: 1B
array(True)
"""
return self.reduce(
duck_array_ops.array_any,
Expand Down Expand Up @@ -222,12 +234,18 @@ def max(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.max()
<xarray.NamedArray ()> Size: 8B
array(3.)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.max(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
"""
return self.reduce(
duck_array_ops.max,
Expand Down Expand Up @@ -284,12 +302,18 @@ def min(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.min()
<xarray.NamedArray ()> Size: 8B
array(0.)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.min(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
"""
return self.reduce(
duck_array_ops.min,
Expand Down Expand Up @@ -350,12 +374,18 @@ def mean(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.mean()
<xarray.NamedArray ()> Size: 8B
array(1.6)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.mean(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
"""
return self.reduce(
duck_array_ops.mean,
Expand Down Expand Up @@ -423,16 +453,24 @@ def prod(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.prod()
<xarray.NamedArray ()> Size: 8B
array(0.)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.prod(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
Specify ``min_count`` for finer control over when NaNs are ignored.
>>> na.prod(skipna=True, min_count=2)
<xarray.NamedArray ()> Size: 8B
array(0.)
"""
return self.reduce(
duck_array_ops.prod,
Expand Down Expand Up @@ -501,16 +539,24 @@ def sum(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.sum()
<xarray.NamedArray ()> Size: 8B
array(8.)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.sum(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
Specify ``min_count`` for finer control over when NaNs are ignored.
>>> na.sum(skipna=True, min_count=2)
<xarray.NamedArray ()> Size: 8B
array(8.)
"""
return self.reduce(
duck_array_ops.sum,
Expand Down Expand Up @@ -576,16 +622,24 @@ def std(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.std()
<xarray.NamedArray ()> Size: 8B
array(1.0198039)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.std(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
Specify ``ddof=1`` for an unbiased estimate.
>>> na.std(skipna=True, ddof=1)
<xarray.NamedArray ()> Size: 8B
array(1.14017543)
"""
return self.reduce(
duck_array_ops.std,
Expand Down Expand Up @@ -651,16 +705,24 @@ def var(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.var()
<xarray.NamedArray ()> Size: 8B
array(1.04)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.var(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
Specify ``ddof=1`` for an unbiased estimate.
>>> na.var(skipna=True, ddof=1)
<xarray.NamedArray ()> Size: 8B
array(1.3)
"""
return self.reduce(
duck_array_ops.var,
Expand Down Expand Up @@ -722,12 +784,18 @@ def median(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.median()
<xarray.NamedArray ()> Size: 8B
array(2.)
Use ``skipna`` to control whether NaNs are ignored.
>>> na.median(skipna=False)
<xarray.NamedArray ()> Size: 8B
array(nan)
"""
return self.reduce(
duck_array_ops.median,
Expand Down Expand Up @@ -793,12 +861,18 @@ def cumsum(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.cumsum()
<xarray.NamedArray (x: 6)> Size: 48B
array([1., 3., 6., 6., 8., 8.])
Use ``skipna`` to control whether NaNs are ignored.
>>> na.cumsum(skipna=False)
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 3., 6., 6., 8., nan])
"""
return self.reduce(
duck_array_ops.cumsum,
Expand Down Expand Up @@ -864,12 +938,18 @@ def cumprod(
... np.array([1, 2, 3, 0, 2, np.nan]),
... )
>>> na
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 3., 0., 2., nan])
>>> na.cumprod()
<xarray.NamedArray (x: 6)> Size: 48B
array([1., 2., 6., 0., 0., 0.])
Use ``skipna`` to control whether NaNs are ignored.
>>> na.cumprod(skipna=False)
<xarray.NamedArray (x: 6)> Size: 48B
array([ 1., 2., 6., 0., 0., nan])
"""
return self.reduce(
duck_array_ops.cumprod,
Expand Down

0 comments on commit 80b4c6a

Please sign in to comment.