class_docstr: Maintains cumulative moving min and max of incoming numpy arrays along axis 0.
  
  Output shapes:
  scalar -> scalar
  vector -> scalar
  matrix -> vector
  :param initial_min: Initial (known) minimum value.
  :param initial_max: Initial (known) maximum value.
class_docstr_tok: ["Maintains","cumulative","moving","min","and","max","of","incoming","numpy","arrays","along","axis","0",".","Output","shapes",":","scalar","-",">","scalar","vector","-",">","scalar","matrix","-",">","vector",":","param","initial_min",":","Initial","(","known",")","minimum","value",".",":","param","initial_max",":","Initial","(","known",")","maximum","value","."]
docstr: Update cumulative moving statistics.
  
  :param new_data: New data to update the stats with.
docstr_tok: ["Update","cumulative","moving","statistics",".",":","param","new_data",":","New","data","to","update","the","stats","with","."]
code: def update(self, new_data: float) -> None:
      """Update cumulative moving statistics.
  
      :param new_data: New data to update the stats with.
      """
      self.max = max(self.max, new_data)
      self.min = min(self.min, new_data)
  
file_path: maze/maze/core/utils/stats_utils.py
imports: from typing import Optional, Union
  import numpy
label_desc: Use image node_id 2 for calling the CumulativeMovingMinMax obj's underlying member method code with example usage: obj.update(new_data) without return types