docs: def mode(data):
      """Compute an intelligent value for the mode
  
      The most common value in experimental is not very useful if there
      are a lot of digits after the comma. This method approaches this
      issue by rounding to bin size that is determined by the
      Freedman–Diaconis rule.
  
      Parameters
      ----------
      data: 1d ndarray
          The data for which the mode should be computed.
  
      Returns
      -------
      mode: float
          The mode computed with the Freedman-Diaconis rule.
      """
      # size
      n = data.shape[0]
      # interquartile range
      iqr = np.percentile(data, 75)-np.percentile(data, 25)
      # Freedman–Diaconis
      bin_size = 2 * iqr / n**(1/3)
  
      if bin_size == 0:
          return np.nan
  
      # Add bin_size/2, because we want the center of the bin and
      # not the left corner of the bin.
      databin = np.round(data/bin_size)*bin_size + bin_size/2
      u, indices = np.unique(databin, return_inverse=True)
      mode = u[np.argmax(np.bincount(indices))]
  
      return mode