docs: def filtered(self, indices):
          """
          :param indices:
             a subset of indices in the range [0 .. tot_sites - 1]
          :returns:
             a filtered SiteCollection instance if `indices` is a proper subset
             of the available indices, otherwise returns the full SiteCollection
          """
          if indices is None or len(indices) == len(self):
              return self
          new = object.__new__(self.__class__)
          indices = numpy.uint32(sorted(indices))
          new.array = self.array[indices]
          new.complete = self.complete
          return new