@@ -486,18 +486,14 @@ def __init__(self, base, linthresh, linscale):
486
486
self ._log_base = np .log (base )
487
487
488
488
def transform_non_affine (self , a ):
489
- sign = np .sign (a )
490
- masked = ma .masked_inside (a ,
491
- - self .linthresh ,
492
- self .linthresh ,
493
- copy = False )
494
- log = sign * self .linthresh * (
495
- self ._linscale_adj +
496
- ma .log (np .abs (masked ) / self .linthresh ) / self ._log_base )
497
- if masked .mask .any ():
498
- return ma .where (masked .mask , a * self ._linscale_adj , log )
499
- else :
500
- return log
489
+ abs_a = np .abs (a )
490
+ with np .errstate (divide = "ignore" , invalid = "ignore" ):
491
+ out = np .sign (a ) * self .linthresh * (
492
+ self ._linscale_adj +
493
+ np .log (abs_a / self .linthresh ) / self ._log_base )
494
+ inside = abs_a <= self .linthresh
495
+ out [inside ] = a [inside ] * self ._linscale_adj
496
+ return out
501
497
502
498
def inverted (self ):
503
499
return InvertedSymmetricalLogTransform (self .base , self .linthresh ,
@@ -520,16 +516,14 @@ def __init__(self, base, linthresh, linscale):
520
516
self ._linscale_adj = (linscale / (1.0 - self .base ** - 1 ))
521
517
522
518
def transform_non_affine (self , a ):
523
- sign = np .sign (a )
524
- masked = ma .masked_inside (a , - self .invlinthresh ,
525
- self .invlinthresh , copy = False )
526
- exp = sign * self .linthresh * (
527
- ma .power (self .base , (sign * (masked / self .linthresh ))
528
- - self ._linscale_adj ))
529
- if masked .mask .any ():
530
- return ma .where (masked .mask , a / self ._linscale_adj , exp )
531
- else :
532
- return exp
519
+ abs_a = np .abs (a )
520
+ with np .errstate (divide = "ignore" , invalid = "ignore" ):
521
+ out = np .sign (a ) * self .linthresh * (
522
+ np .power (self .base ,
523
+ abs_a / self .linthresh - self ._linscale_adj ))
524
+ inside = abs_a <= self .invlinthresh
525
+ out [inside ] = a [inside ] / self ._linscale_adj
526
+ return out
533
527
534
528
def inverted (self ):
535
529
return SymmetricalLogTransform (self .base ,
0 commit comments