docs: def _counts(self):
          """ Number of non-nan entries in each rolling window. """
  
          rolling_dim = utils.get_temp_dimname(self.obj.dims, '_rolling_dim')
          # We use False as the fill_value instead of np.nan, since boolean
          # array is faster to be reduced than object array.
          # The use of skipna==False is also faster since it does not need to
          # copy the strided array.
          counts = (self.obj.notnull()
                    .rolling(center=self.center, **{self.dim: self.window})
                    .construct(rolling_dim, fill_value=False)
                    .sum(dim=rolling_dim, skipna=False))
          return counts