def transform_non_affine(self, values):
scale = self.scale or <NUM_LIT:1><EOL>epoch = self.epoch or <NUM_LIT:0><EOL>values = numpy.asarray(values)<EOL>if self._parents or (  <EOL>epoch == <NUM_LIT:0> and  <EOL>scale == <NUM_LIT:1>  <EOL>):<EOL><INDENT>return self._transform(values, float(epoch), float(scale))<EOL><DEDENT>flat = values.flatten()<EOL>def _trans(x):<EOL><INDENT>return self._transform_decimal(x, epoch, scale)<EOL><DEDENT>return numpy.asarray(list(map(_trans, flat))).reshape(values.shape)<EOL>
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.