4
4
import warnings
5
5
6
6
import numpy as np
7
- import pandas as pd
8
7
from pygmt .exceptions import GMTInvalidInput
9
8
10
9
@@ -252,10 +251,9 @@ def kwargs_to_ctypes_array(argument, kwargs, dtype):
252
251
253
252
def array_to_datetime (array ):
254
253
"""
255
- Convert an 1-D datetime array from various types into pandas.DatetimeIndex
256
- (i.e., numpy.datetime64).
254
+ Convert a 1-D datetime array from various types into numpy.datetime64.
257
255
258
- If the input array is not in legal datetime formats, raise a "ParseError"
256
+ If the input array is not in legal datetime formats, raise a ValueError
259
257
exception.
260
258
261
259
Parameters
@@ -272,58 +270,58 @@ def array_to_datetime(array):
272
270
273
271
Returns
274
272
-------
275
- array : 1-D datetime array in pandas.DatetimeIndex (i.e., numpy.datetime64)
273
+ array : 1-D datetime array in numpy.datetime64
274
+
275
+ Raises
276
+ ------
277
+ ValueError
278
+ If the datetime string is invalid.
276
279
277
280
Examples
278
281
--------
279
282
>>> import datetime
280
283
>>> # numpy.datetime64 array
281
284
>>> x = np.array(
282
285
... ["2010-06-01", "2011-06-01T12", "2012-01-01T12:34:56"],
283
- ... dtype="datetime64",
286
+ ... dtype="datetime64[ns] ",
284
287
... )
285
288
>>> array_to_datetime(x)
286
- DatetimeIndex(['2010-06-01 00:00:00', '2011-06-01 12:00:00',
287
- '2012-01-01 12:34:56'],
288
- dtype='datetime64[ns]', freq=None)
289
+ array(['2010-06-01T00:00:00.000000000', '2011-06-01T12:00:00.000000000',
290
+ '2012-01-01T12:34:56.000000000'], dtype='datetime64[ns]')
289
291
290
292
>>> # pandas.DateTimeIndex array
293
+ >>> import pandas as pd
291
294
>>> x = pd.date_range("2013", freq="YS", periods=3)
292
- >>> array_to_datetime(x) # doctest: +NORMALIZE_WHITESPACE
293
- DatetimeIndex (['2013-01-01 ', '2014-01-01', '2015-01-01'] ,
294
- dtype='datetime64[ns]', freq='AS-JAN ')
295
+ >>> array_to_datetime(x)
296
+ array (['2013-01-01T00:00:00.000000000 ', '2014-01-01T00:00:00.000000000' ,
297
+ '2015-01-01T00:00:00.000000000'], dtype='datetime64[ns]')
295
298
296
299
>>> # Python's built-in date and datetime
297
300
>>> x = [datetime.date(2018, 1, 1), datetime.datetime(2019, 1, 1)]
298
- >>> array_to_datetime(x) # doctest: +NORMALIZE_WHITESPACE
299
- DatetimeIndex (['2018-01-01 ', '2019-01-01 '],
300
- dtype='datetime64[ns]', freq=None )
301
+ >>> array_to_datetime(x)
302
+ array (['2018-01-01T00:00:00.000000 ', '2019-01-01T00:00:00.000000 '],
303
+ dtype='datetime64[us]' )
301
304
302
305
>>> # Raw datetime strings in various format
303
306
>>> x = [
304
307
... "2018",
305
308
... "2018-02",
306
309
... "2018-03-01",
307
310
... "2018-04-01T01:02:03",
308
- ... "5/1/2018",
309
- ... "Jun 05, 2018",
310
- ... "2018/07/02",
311
311
... ]
312
312
>>> array_to_datetime(x)
313
- DatetimeIndex(['2018-01-01 00:00:00', '2018-02-01 00:00:00',
314
- '2018-03-01 00:00:00', '2018-04-01 01:02:03',
315
- '2018-05-01 00:00:00', '2018-06-05 00:00:00',
316
- '2018-07-02 00:00:00'],
317
- dtype='datetime64[ns]', freq=None)
313
+ array(['2018-01-01T00:00:00', '2018-02-01T00:00:00',
314
+ '2018-03-01T00:00:00', '2018-04-01T01:02:03'],
315
+ dtype='datetime64[s]')
318
316
319
317
>>> # Mixed datetime types
320
318
>>> x = [
321
319
... "2018-01-01",
322
320
... np.datetime64("2018-01-01"),
323
321
... datetime.datetime(2018, 1, 1),
324
322
... ]
325
- >>> array_to_datetime(x) # doctest: +NORMALIZE_WHITESPACE
326
- DatetimeIndex (['2018-01-01 ', '2018-01-01', '2018-01-01'] ,
327
- dtype='datetime64[ns]', freq=None )
323
+ >>> array_to_datetime(x)
324
+ array (['2018-01-01T00:00:00.000000 ', '2018-01-01T00:00:00.000000' ,
325
+ '2018-01-01T00:00:00.000000'], dtype='datetime64[us]' )
328
326
"""
329
- return pd . to_datetime (array )
327
+ return np . asarray (array , dtype = np . datetime64 )
0 commit comments