docs: def norm_zero_one(array, dim=None):
      """
      normalizes a numpy array from 0 to 1 based in its extent
  
      Args:
          array (ndarray):
          dim   (int):
  
      Returns:
          ndarray:
  
      CommandLine:
          python -m utool.util_alg --test-norm_zero_one
  
      Example:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_alg import *  # NOQA
          >>> import utool as ut
          >>> array = np.array([ 22, 1, 3, 2, 10, 42, ])
          >>> dim = None
          >>> array_norm = norm_zero_one(array, dim)
          >>> result = ut.repr2(list(array_norm), precision=3)
          >>> print(result)
          [0.512, 0.000, 0.049, 0.024, 0.220, 1.000]
      """
      if not util_type.is_float(array):
          array = array.astype(np.float32)
      array_max  = array.max(dim)
      array_min  = array.min(dim)
      array_exnt = np.subtract(array_max, array_min)
      array_norm = np.divide(np.subtract(array, array_min), array_exnt)
      return array_norm