@@ -761,15 +761,15 @@ def get_median(x, _mask=None):
761761 res = np .nanmedian (x [_mask ])
762762 return res
763763
764- values , mask , dtype , _ , _ = _get_values (values , skipna , mask = mask )
764+ values , mask , dtype , _ , _ = _get_values (values , skipna , mask = mask , fill_value = 0 )
765765 if not is_float_dtype (values .dtype ):
766766 try :
767767 values = values .astype ("f8" )
768768 except ValueError as err :
769769 # e.g. "could not convert string to float: 'a'"
770770 raise TypeError (str (err )) from err
771- if mask is not None :
772- values [mask ] = np .nan
771+ if mask is not None :
772+ values [mask ] = np .nan
773773
774774 notempty = values .size
775775
@@ -1043,8 +1043,11 @@ def nansem(
10431043 if not is_float_dtype (values .dtype ):
10441044 values = values .astype ("f8" )
10451045
1046+ if not skipna and mask is not None and mask .any ():
1047+ return np .nan
1048+
10461049 count , _ = _get_counts_nanvar (values .shape , mask , axis , ddof , values .dtype )
1047- var = nanvar (values , axis = axis , skipna = skipna , ddof = ddof )
1050+ var = nanvar (values , axis = axis , skipna = skipna , ddof = ddof , mask = mask )
10481051
10491052 return np .sqrt (var ) / np .sqrt (count )
10501053
@@ -1225,6 +1228,8 @@ def nanskew(
12251228 if skipna and mask is not None :
12261229 values = values .copy ()
12271230 np .putmask (values , mask , 0 )
1231+ elif not skipna and mask is not None and mask .any ():
1232+ return np .nan
12281233
12291234 mean = values .sum (axis , dtype = np .float64 ) / count
12301235 if axis is not None :
@@ -1313,6 +1318,8 @@ def nankurt(
13131318 if skipna and mask is not None :
13141319 values = values .copy ()
13151320 np .putmask (values , mask , 0 )
1321+ elif not skipna and mask is not None and mask .any ():
1322+ return np .nan
13161323
13171324 mean = values .sum (axis , dtype = np .float64 ) / count
13181325 if axis is not None :
0 commit comments