class_docstr: Normalizes observations to value range [0, 1].
  
  The strategy subtracts in a first step the minimum observed value to shift the lowest value after
  normalization to zero. In a subsequent step we divide the observation with the maximum of the previous step yielding
  observations in the range [0, 1].
docstr: Implementation of
  :class:`~maze.core.wrappers.observation_normalization.normalization_strategies.base.ObservationNormalizationStrategy`
  interface.
docstr_tok: ["Implementation","of",":","class",":","`","~maze.core.wrappers.observation_normalization.normalization_strategies.base.ObservationNormalizationStrategy","`","interface","."]
code: def estimate_stats(
      self, observations: List[np.ndarray]
  ) -> StatisticsType:
      """Implementation of
      :class:`~maze.core.wrappers.observation_normalization.normalization_strategies.base.ObservationNormalizationStrategy`
      interface.
      """
  
      # compute statistics
      array = np.vstack(observations)
      keepdims = False if self._axis is None else True
      min_val: np.ndarray = np.min(
          array, axis=self._axis, keepdims=keepdims
      )
      max_val: np.ndarray = np.max(
          array, axis=self._axis, keepdims=keepdims
      )
  
      if keepdims:
          min_val = min_val[0]
          max_val = max_val[0]
  
      if not isinstance(min_val, np.ndarray):
          min_val = np.asarray(min_val, np.float32)
          max_val = np.asarray(max_val, np.float32)
  
      statistics = {"min": min_val, "max": max_val}
  
      return statistics
  
file_path: maze/maze/core/wrappers/observation_normalization/normalization_strategies/range_zero_one.py
imports: from typing import List
  import numpy
  from maze.core.annotations import override
  from maze.core.wrappers.observation_normalization.normalization_strategies.base import ObservationNormalizationStrategy, StatisticsType
label_desc: Use image node_id 1 for calling the RangeZeroOneObservationNormalizationStrategy obj's underlying member method code with example usage: obj.estimate_stats(observations) and returns: statistics