@@ -281,12 +281,11 @@ def _maybe_mask_results(self, result, fill_value=None, convert=None):
281281 """
282282
283283 if self .hasnans :
284- mask = self .asi8 == tslib .iNaT
285284 if convert :
286285 result = result .astype (convert )
287286 if fill_value is None :
288287 fill_value = np .nan
289- result [mask ] = fill_value
288+ result [self . _isnan ] = fill_value
290289 return result
291290
292291 def tolist (self ):
@@ -312,8 +311,7 @@ def min(self, axis=None):
312311 return self ._box_func (i8 [0 ])
313312
314313 if self .hasnans :
315- mask = i8 == tslib .iNaT
316- min_stamp = i8 [~ mask ].min ()
314+ min_stamp = self [~ self ._isnan ].asi8 .min ()
317315 else :
318316 min_stamp = i8 .min ()
319317 return self ._box_func (min_stamp )
@@ -331,7 +329,7 @@ def argmin(self, axis=None):
331329
332330 i8 = self .asi8
333331 if self .hasnans :
334- mask = i8 == tslib . iNaT
332+ mask = self . _isnan
335333 if mask .all ():
336334 return - 1
337335 i8 = i8 .copy ()
@@ -355,8 +353,7 @@ def max(self, axis=None):
355353 return self ._box_func (i8 [- 1 ])
356354
357355 if self .hasnans :
358- mask = i8 == tslib .iNaT
359- max_stamp = i8 [~ mask ].max ()
356+ max_stamp = self [~ self ._isnan ].asi8 .max ()
360357 else :
361358 max_stamp = i8 .max ()
362359 return self ._box_func (max_stamp )
@@ -374,7 +371,7 @@ def argmax(self, axis=None):
374371
375372 i8 = self .asi8
376373 if self .hasnans :
377- mask = i8 == tslib . iNaT
374+ mask = self . _isnan
378375 if mask .all ():
379376 return - 1
380377 i8 = i8 .copy ()
@@ -498,9 +495,9 @@ def _add_delta_td(self, other):
498495 # return the i8 result view
499496
500497 inc = tslib ._delta_to_nanoseconds (other )
501- mask = self .asi8 == tslib .iNaT
502498 new_values = (self .asi8 + inc ).view ('i8' )
503- new_values [mask ] = tslib .iNaT
499+ if self .hasnans :
500+ new_values [self ._isnan ] = tslib .iNaT
504501 return new_values .view ('i8' )
505502
506503 def _add_delta_tdi (self , other ):
@@ -513,9 +510,10 @@ def _add_delta_tdi(self, other):
513510
514511 self_i8 = self .asi8
515512 other_i8 = other .asi8
516- mask = (self_i8 == tslib .iNaT ) | (other_i8 == tslib .iNaT )
517513 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
519517 return new_values .view (self .dtype )
520518
521519 def isin (self , values ):
0 commit comments