docs: def shift_and_scale(matrix, shift, scale):
      """ Shift and scale matrix so its minimum value is placed at `shift` and
      its maximum value is scaled to `scale` """
  
      zeroed = matrix - matrix.min()
      scaled = (scale - shift) * (zeroed / zeroed.max())
      return scaled + shift