docs: def subsample_indexes(data, n_samples=1000, size=0.5):
      """
  Given data points data, where axis 0 is considered to delineate points, return
  a list of arrays where each array is indexes a subsample of the data of size
  ``size``. If size is >= 1, then it will be taken to be an absolute size. If
  size < 1, it will be taken to be a fraction of the data size. If size == -1, it
  will be taken to mean subsamples the same size as the sample (ie, permuted
  samples)
      """
      if size == -1:
          size = len(data)
      elif (size < 1) and (size > 0):
          size = int(round(size*len(data)))
      elif size > 1:
          pass
      else:
          raise ValueError("size cannot be {0}".format(size))
      base = np.tile(np.arange(len(data)),(n_samples,1))
      for sample in base: np.random.shuffle(sample)
      return base[:,0:size]