class_docstr: Observer the provides statistics for measurements at every timestep.
  
  This assumes the measurements is a multidimensional array with a static spec.
  Warning! It is not intended to be used for high dimensional observations.
  
  self._measurements: List[np.ndarray]
docstr: Returns metrics collected for the current episode.
code: def get_metrics(
      self,
  ) -> Mapping[
      str, List[base.Number]
  ]:  # pytype: disable=signature-mismatch  # overriding-return-type-checks
      """Returns metrics collected for the current episode."""
      aggregate_metrics = {}
      if not self._measurements:
          return aggregate_metrics
  
      metrics = {
          "measurement_max": np.max(self._measurements, axis=0),
          "measurement_min": np.min(self._measurements, axis=0),
          "measurement_mean": np.mean(self._measurements, axis=0),
          "measurement_p25": np.percentile(
              self._measurements, q=25.0, axis=0
          ),
          "measurement_p50": np.percentile(
              self._measurements, q=50.0, axis=0
          ),
          "measurement_p75": np.percentile(
              self._measurements, q=75.0, axis=0
          ),
      }
      for index, sub_observation_metric in np.ndenumerate(
          metrics["measurement_max"]
      ):
          aggregate_metrics[
              f"measurement{list(index)}_max"
          ] = sub_observation_metric
          aggregate_metrics[f"measurement{list(index)}_min"] = metrics[
              "measurement_min"
          ][index]
          aggregate_metrics[f"measurement{list(index)}_mean"] = metrics[
              "measurement_mean"
          ][index]
          aggregate_metrics[f"measurement{list(index)}_p50"] = metrics[
              "measurement_p50"
          ][index]
          aggregate_metrics[f"measurement{list(index)}_p25"] = metrics[
              "measurement_p25"
          ][index]
          aggregate_metrics[f"measurement{list(index)}_p75"] = metrics[
              "measurement_p75"
          ][index]
      return aggregate_metrics
  
file_path: acme/acme/utils/observers/measurement_metrics.py
imports: from typing import Mapping, List
  from acme.utils.observers import base
  import dm_env
  import numpy
label_desc: Use image node_id 4 for calling the MeasurementObserver obj's underlying member method code with example usage: obj.get_metrics() and returns: aggregate_metrics, aggregate_metrics