@@ -99,11 +99,7 @@ def nansum_of_squares(group_idx, array, *, axis=-1, size=None, fill_value=None,
99
99
100
100
101
101
def nanlen (group_idx , array , * args , ** kwargs ):
102
- if np .issubdtype (array .dtype , bool ):
103
- array = ~ array
104
- else :
105
- array = ~ isnull (array )
106
- return sum (group_idx , array .view (np .int8 ), * args , ** kwargs )
102
+ return sum (group_idx , (~ isnull (array )).view (np .int8 ), * args , ** kwargs )
107
103
108
104
109
105
def mean (group_idx , array , * , axis = - 1 , size = None , fill_value = None , dtype = None ):
@@ -122,5 +118,5 @@ def nanmean(group_idx, array, *, axis=-1, size=None, fill_value=None, dtype=None
122
118
masked = np .where (mask , 0 , array )
123
119
out = sum (group_idx , masked , size = size , axis = axis , dtype = dtype , fill_value = fill_value )
124
120
with np .errstate (invalid = "ignore" , divide = "ignore" ):
125
- out /= nanlen (group_idx , mask , size = size , axis = axis , fill_value = 0 , dtype = np .intp )
121
+ out /= sum (group_idx , mask . view ( np . int8 ) , size = size , axis = axis , fill_value = 0 , dtype = np .intp )
126
122
return out
0 commit comments