@@ -281,12 +281,11 @@ def _maybe_mask_results(self, result, fill_value=None, convert=None):
281
281
"""
282
282
283
283
if self .hasnans :
284
- mask = self .asi8 == tslib .iNaT
285
284
if convert :
286
285
result = result .astype (convert )
287
286
if fill_value is None :
288
287
fill_value = np .nan
289
- result [mask ] = fill_value
288
+ result [self . _isnan ] = fill_value
290
289
return result
291
290
292
291
def tolist (self ):
@@ -312,8 +311,7 @@ def min(self, axis=None):
312
311
return self ._box_func (i8 [0 ])
313
312
314
313
if self .hasnans :
315
- mask = i8 == tslib .iNaT
316
- min_stamp = i8 [~ mask ].min ()
314
+ min_stamp = self [~ self ._isnan ].asi8 .min ()
317
315
else :
318
316
min_stamp = i8 .min ()
319
317
return self ._box_func (min_stamp )
@@ -331,7 +329,7 @@ def argmin(self, axis=None):
331
329
332
330
i8 = self .asi8
333
331
if self .hasnans :
334
- mask = i8 == tslib . iNaT
332
+ mask = self . _isnan
335
333
if mask .all ():
336
334
return - 1
337
335
i8 = i8 .copy ()
@@ -355,8 +353,7 @@ def max(self, axis=None):
355
353
return self ._box_func (i8 [- 1 ])
356
354
357
355
if self .hasnans :
358
- mask = i8 == tslib .iNaT
359
- max_stamp = i8 [~ mask ].max ()
356
+ max_stamp = self [~ self ._isnan ].asi8 .max ()
360
357
else :
361
358
max_stamp = i8 .max ()
362
359
return self ._box_func (max_stamp )
@@ -374,7 +371,7 @@ def argmax(self, axis=None):
374
371
375
372
i8 = self .asi8
376
373
if self .hasnans :
377
- mask = i8 == tslib . iNaT
374
+ mask = self . _isnan
378
375
if mask .all ():
379
376
return - 1
380
377
i8 = i8 .copy ()
@@ -498,9 +495,9 @@ def _add_delta_td(self, other):
498
495
# return the i8 result view
499
496
500
497
inc = tslib ._delta_to_nanoseconds (other )
501
- mask = self .asi8 == tslib .iNaT
502
498
new_values = (self .asi8 + inc ).view ('i8' )
503
- new_values [mask ] = tslib .iNaT
499
+ if self .hasnans :
500
+ new_values [self ._isnan ] = tslib .iNaT
504
501
return new_values .view ('i8' )
505
502
506
503
def _add_delta_tdi (self , other ):
@@ -513,9 +510,10 @@ def _add_delta_tdi(self, other):
513
510
514
511
self_i8 = self .asi8
515
512
other_i8 = other .asi8
516
- mask = (self_i8 == tslib .iNaT ) | (other_i8 == tslib .iNaT )
517
513
new_values = self_i8 + other_i8
518
- new_values [mask ] = tslib .iNaT
514
+ if self .hasnans or other .hasnans :
515
+ mask = (self ._isnan ) | (other ._isnan )
516
+ new_values [mask ] = tslib .iNaT
519
517
return new_values .view (self .dtype )
520
518
521
519
def isin (self , values ):
0 commit comments