html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/3641#issuecomment-567129939,https://api.github.com/repos/pydata/xarray/issues/3641,567129939,MDEyOklzc3VlQ29tbWVudDU2NzEyOTkzOQ==,81219,2019-12-18T17:22:55Z,2019-12-18T17:22:55Z,CONTRIBUTOR,"Note that at the moment, if we pass np.datetime64 objects that exceed the allowed time span, the function yields garbage without failing. Is this something we want to fix as well ? One option is to convert array and offset to microseconds first, then compute the delta, but this may break people's code. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,539648897 https://github.com/pydata/xarray/issues/3641#issuecomment-567077543,https://api.github.com/repos/pydata/xarray/issues/3641,567077543,MDEyOklzc3VlQ29tbWVudDU2NzA3NzU0Mw==,81219,2019-12-18T15:22:07Z,2019-12-18T15:22:07Z,CONTRIBUTOR,"How about replacing `array = np.asarray(pd.Series(array.ravel())).reshape(array.shape)` by `array = array.astype(""timedelta64"")` ? with numpy 1.17 your example works and the test suite only fails on unrelated netcdf string errors. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,539648897 https://github.com/pydata/xarray/issues/3641#issuecomment-567022752,https://api.github.com/repos/pydata/xarray/issues/3641,567022752,MDEyOklzc3VlQ29tbWVudDU2NzAyMjc1Mg==,81219,2019-12-18T13:04:31Z,2019-12-18T13:04:31Z,CONTRIBUTOR,"Got it, thanks ! ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,539648897 https://github.com/pydata/xarray/issues/3641#issuecomment-567018062,https://api.github.com/repos/pydata/xarray/issues/3641,567018062,MDEyOklzc3VlQ29tbWVudDU2NzAxODA2Mg==,81219,2019-12-18T12:49:43Z,2019-12-18T12:49:43Z,CONTRIBUTOR,"Another issue with `datetime_to_numeric` happens with: ``` import xarray as xr import cftime i = xr.CFTimeIndex(xr.cftime_range('2000-01-01', periods=2)) xr.core.duck_array_ops.datetime_to_numeric(i, cftime.DatetimeGregorian(2, 1, 1), datetime_unit='D') ``` ```python --------------------------------------------------------------------------- TypeError Traceback (most recent call last) pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.array_to_timedelta64() pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.parse_timedelta_string() TypeError: object of type 'datetime.timedelta' has no len() During handling of the above exception, another exception occurred: OverflowError Traceback (most recent call last) in ----> 1 xr.core.duck_array_ops.datetime_to_numeric(i, cftime.DatetimeGregorian(2, 1, 1), datetime_unit='D') ~/src/xarray/xarray/core/duck_array_ops.py in datetime_to_numeric(array, offset, datetime_unit, dtype) 395 else: 396 offset = min(array) --> 397 array = array - offset 398 399 if not hasattr(array, ""dtype""): # scalar is converted to 0d-array ~/src/xarray/xarray/coding/cftimeindex.py in __sub__(self, other) 431 432 if isinstance(other, (CFTimeIndex, cftime.datetime)): --> 433 return pd.TimedeltaIndex(np.array(self) - np.array(other)) 434 elif isinstance(other, pd.TimedeltaIndex): 435 return CFTimeIndex(np.array(self) - other.to_pytimedelta()) ~/.conda/envs/xclim3/lib/python3.6/site-packages/pandas/core/indexes/timedeltas.py in __new__(cls, data, unit, freq, start, end, periods, closed, dtype, copy, name, verify_integrity) 256 257 tdarr = TimedeltaArray._from_sequence( --> 258 data, freq=freq, unit=unit, dtype=dtype, copy=copy 259 ) 260 return cls._simple_new(tdarr._data, freq=tdarr.freq, name=name) ~/.conda/envs/xclim3/lib/python3.6/site-packages/pandas/core/arrays/timedeltas.py in _from_sequence(cls, data, dtype, copy, freq, unit) 270 freq, freq_infer = dtl.maybe_infer_freq(freq) 271 --> 272 data, inferred_freq = sequence_to_td64ns(data, copy=copy, unit=unit) 273 freq, freq_infer = dtl.validate_inferred_freq(freq, inferred_freq, freq_infer) 274 ~/.conda/envs/xclim3/lib/python3.6/site-packages/pandas/core/arrays/timedeltas.py in sequence_to_td64ns(data, copy, unit, errors) 971 if is_object_dtype(data.dtype) or is_string_dtype(data.dtype): 972 # no need to make a copy, need to convert if string-dtyped --> 973 data = objects_to_td64ns(data, unit=unit, errors=errors) 974 copy = False 975 ~/.conda/envs/xclim3/lib/python3.6/site-packages/pandas/core/arrays/timedeltas.py in objects_to_td64ns(data, unit, errors) 1096 values = np.array(data, dtype=np.object_, copy=False) 1097 -> 1098 result = array_to_timedelta64(values, unit=unit, errors=errors) 1099 return result.view(""timedelta64[ns]"") 1100 pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.array_to_timedelta64() pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.convert_to_timedelta64() pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.delta_to_nanoseconds() OverflowError: Python int too large to convert to C long ``` ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,539648897