From 80b4c6a3f9271a1fddd69100d12782867717b58c Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Sun, 22 Sep 2024 17:56:23 -0700 Subject: [PATCH] add named array generations --- xarray/namedarray/_aggregations.py | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/xarray/namedarray/_aggregations.py b/xarray/namedarray/_aggregations.py index 0b7b99baa8c..10006c97a32 100644 --- a/xarray/namedarray/_aggregations.py +++ b/xarray/namedarray/_aggregations.py @@ -65,8 +65,12 @@ def count( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.count() + Size: 8B + array(5) """ return self.reduce( duck_array_ops.count, @@ -115,8 +119,12 @@ def all( ... np.array([True, True, True, True, True, False], dtype=bool), ... ) >>> na + Size: 6B + array([ True, True, True, True, True, False]) >>> na.all() + Size: 1B + array(False) """ return self.reduce( duck_array_ops.array_all, @@ -165,8 +173,12 @@ def any( ... np.array([True, True, True, True, True, False], dtype=bool), ... ) >>> na + Size: 6B + array([ True, True, True, True, True, False]) >>> na.any() + Size: 1B + array(True) """ return self.reduce( duck_array_ops.array_any, @@ -222,12 +234,18 @@ def max( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.max() + Size: 8B + array(3.) Use ``skipna`` to control whether NaNs are ignored. >>> na.max(skipna=False) + Size: 8B + array(nan) """ return self.reduce( duck_array_ops.max, @@ -284,12 +302,18 @@ def min( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.min() + Size: 8B + array(0.) Use ``skipna`` to control whether NaNs are ignored. >>> na.min(skipna=False) + Size: 8B + array(nan) """ return self.reduce( duck_array_ops.min, @@ -350,12 +374,18 @@ def mean( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.mean() + Size: 8B + array(1.6) Use ``skipna`` to control whether NaNs are ignored. >>> na.mean(skipna=False) + Size: 8B + array(nan) """ return self.reduce( duck_array_ops.mean, @@ -423,16 +453,24 @@ def prod( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.prod() + Size: 8B + array(0.) Use ``skipna`` to control whether NaNs are ignored. >>> na.prod(skipna=False) + Size: 8B + array(nan) Specify ``min_count`` for finer control over when NaNs are ignored. >>> na.prod(skipna=True, min_count=2) + Size: 8B + array(0.) """ return self.reduce( duck_array_ops.prod, @@ -501,16 +539,24 @@ def sum( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.sum() + Size: 8B + array(8.) Use ``skipna`` to control whether NaNs are ignored. >>> na.sum(skipna=False) + Size: 8B + array(nan) Specify ``min_count`` for finer control over when NaNs are ignored. >>> na.sum(skipna=True, min_count=2) + Size: 8B + array(8.) """ return self.reduce( duck_array_ops.sum, @@ -576,16 +622,24 @@ def std( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.std() + Size: 8B + array(1.0198039) Use ``skipna`` to control whether NaNs are ignored. >>> na.std(skipna=False) + Size: 8B + array(nan) Specify ``ddof=1`` for an unbiased estimate. >>> na.std(skipna=True, ddof=1) + Size: 8B + array(1.14017543) """ return self.reduce( duck_array_ops.std, @@ -651,16 +705,24 @@ def var( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.var() + Size: 8B + array(1.04) Use ``skipna`` to control whether NaNs are ignored. >>> na.var(skipna=False) + Size: 8B + array(nan) Specify ``ddof=1`` for an unbiased estimate. >>> na.var(skipna=True, ddof=1) + Size: 8B + array(1.3) """ return self.reduce( duck_array_ops.var, @@ -722,12 +784,18 @@ def median( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.median() + Size: 8B + array(2.) Use ``skipna`` to control whether NaNs are ignored. >>> na.median(skipna=False) + Size: 8B + array(nan) """ return self.reduce( duck_array_ops.median, @@ -793,12 +861,18 @@ def cumsum( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.cumsum() + Size: 48B + array([1., 3., 6., 6., 8., 8.]) Use ``skipna`` to control whether NaNs are ignored. >>> na.cumsum(skipna=False) + Size: 48B + array([ 1., 3., 6., 6., 8., nan]) """ return self.reduce( duck_array_ops.cumsum, @@ -864,12 +938,18 @@ def cumprod( ... np.array([1, 2, 3, 0, 2, np.nan]), ... ) >>> na + Size: 48B + array([ 1., 2., 3., 0., 2., nan]) >>> na.cumprod() + Size: 48B + array([1., 2., 6., 0., 0., 0.]) Use ``skipna`` to control whether NaNs are ignored. >>> na.cumprod(skipna=False) + Size: 48B + array([ 1., 2., 6., 0., 0., nan]) """ return self.reduce( duck_array_ops.cumprod,