@@ -116,22 +116,8 @@ def nansum_of_squares(group_idx, array, size=None, fill_value=None):
116116 return sum_of_squares (group_idx , array , func = "nansum" , size = size , fill_value = fill_value )
117117
118118
119- def _count (group_idx , array , size = None , fill_value = None ):
120- import numpy_groupies as npg
121-
122- return npg .aggregate_numpy .aggregate (
123- group_idx ,
124- ~ np .isnan (array ),
125- axis = - 1 ,
126- func = "sum" ,
127- size = size ,
128- fill_value = fill_value ,
129- dtype = np .intp ,
130- )
131-
132-
133119count = Aggregation (
134- "count" , chunk = _count , combine = "sum" , fill_value = 0 , final_fill_value = 0 , dtype = int
120+ "count" , chunk = "nanlen" , combine = "sum" , fill_value = 0 , final_fill_value = 0 , dtype = np . intp
135121)
136122
137123# note that the fill values are the result of np.func([np.nan, np.nan])
@@ -141,15 +127,15 @@ def _count(group_idx, array, size=None, fill_value=None):
141127nanprod = Aggregation ("nanprod" , chunk = "nanprod" , combine = "prod" , fill_value = 1 , final_fill_value = 1 )
142128mean = Aggregation (
143129 "mean" ,
144- chunk = ("sum" , _count ),
130+ chunk = ("sum" , "nanlen" ),
145131 combine = ("sum" , "sum" ),
146132 finalize = lambda sum_ , count : sum_ / count ,
147133 fill_value = (0 , 0 ),
148134 dtype = np .float64 ,
149135)
150136nanmean = Aggregation (
151137 "nanmean" ,
152- chunk = ("nansum" , _count ),
138+ chunk = ("nansum" , "nanlen" ),
153139 combine = ("sum" , "sum" ),
154140 finalize = lambda sum_ , count : sum_ / count ,
155141 fill_value = (0 , 0 ),
@@ -171,7 +157,7 @@ def _std_finalize(sumsq, sum_, count, ddof=0):
171157# var, std always promote to float, so we set nan
172158var = Aggregation (
173159 "var" ,
174- chunk = (sum_of_squares , "sum" , _count ),
160+ chunk = (sum_of_squares , "sum" , "nanlen" ),
175161 combine = ("sum" , "sum" , "sum" ),
176162 finalize = _var_finalize ,
177163 fill_value = 0 ,
@@ -180,7 +166,7 @@ def _std_finalize(sumsq, sum_, count, ddof=0):
180166)
181167nanvar = Aggregation (
182168 "nanvar" ,
183- chunk = (nansum_of_squares , "nansum" , _count ),
169+ chunk = (nansum_of_squares , "nansum" , "nanlen" ),
184170 combine = ("sum" , "sum" , "sum" ),
185171 finalize = _var_finalize ,
186172 fill_value = 0 ,
@@ -189,7 +175,7 @@ def _std_finalize(sumsq, sum_, count, ddof=0):
189175)
190176std = Aggregation (
191177 "std" ,
192- chunk = (sum_of_squares , "sum" , _count ),
178+ chunk = (sum_of_squares , "sum" , "nanlen" ),
193179 combine = ("sum" , "sum" , "sum" ),
194180 finalize = _std_finalize ,
195181 fill_value = 0 ,
@@ -198,7 +184,7 @@ def _std_finalize(sumsq, sum_, count, ddof=0):
198184)
199185nanstd = Aggregation (
200186 "nanstd" ,
201- chunk = (nansum_of_squares , "nansum" , _count ),
187+ chunk = (nansum_of_squares , "nansum" , "nanlen" ),
202188 combine = ("sum" , "sum" , "sum" ),
203189 finalize = _std_finalize ,
204190 fill_value = 0 ,
0 commit comments