docs: def concatenate(cls, list_of_stats):
          """
          Take a list of stats from different sets of data points and
          merge the stats for getting stats overall data points.
  
          Args:
              list_of_stats (iterable): A list containing stats for different sets of data points.
  
          Returns:
              DataStats: Stats calculated overall sets of data points.
          """
  
          all_stats = np.stack([stats.values for stats in list_of_stats])
          all_counts = all_stats[:, 4]
          all_counts_relative = all_counts / np.sum(all_counts)
  
          min_value = float(np.min(all_stats[:, 2]))
          max_value = float(np.max(all_stats[:, 3]))
          mean_value = float(np.sum(all_counts_relative * all_stats[:, 0]))
          var_value = float(np.sum(all_counts_relative * (all_stats[:, 1] + np.power(all_stats[:, 0] - mean_value, 2))))
          num_value = int(np.sum(all_counts))
  
          return cls(mean_value, var_value, min_value, max_value, num_value)