We certainly don't need to create the mask as float64. To keep the missing values masked using np.nan, switching only to float32. We could, in theory, use something like int16 but then we would need to map missing values to -1 or something and treat them later. If we do that before passing to the groupby, then we need a where mask resulting in another float32 array (once masked), so there's no point. We could also remove -1 after groupby but then we're doing aggregation on stuff we don't care about. So let's stick with float32 for now.
We certainly don't need to create the mask as float64. To keep the missing values masked using np.nan, switching only to float32. We could, in theory, use something like int16 but then we would need to map missing values to -1 or something and treat them later. If we do that before passing to the groupby, then we need a
where
mask resulting in another float32 array (once masked), so there's no point. We could also remove -1 after groupby but then we're doing aggregation on stuff we don't care about. So let's stick with float32 for now.Closes #76