code: def transform_non_affine(self, values):
          
          scale = self.scale or 1
          epoch = self.epoch or 0
  
          values = numpy.asarray(values)
  
          # handle simple or data transformations with floats
          if self._parents or (  # part of composite transform (from draw())
                  epoch == 0 and  # no large additions
                  scale == 1  # no multiplications
          ):
              return self._transform(values, float(epoch), float(scale))
  
          # otherwise do things carefully (and slowly) with Decimals
          # -- ideally this only gets called for transforming tick positions
          flat = values.flatten()
  
          def _trans(x):
              return self._transform_decimal(x, epoch, scale)
  
          return numpy.asarray(list(map(_trans, flat))).reshape(values.shape)
docs: Transform an array of GPS times.
  
          This method is designed to filter out transformations that will
          generate text elements that require exact precision, and use
          `Decimal` objects to do the transformation, and simple `float`
          otherwise.