Почему numpy.datetime64 выдает ошибку с массивом лет? - PullRequest
0 голосов
/ 19 декабря 2018

Я работаю с некоторыми данными, у которых есть дата в формате 2017.08333.В процессе преобразования этого объекта в объекты datetime я получил ошибку при попытке преобразовать целые годы в datetime.

np.datetime64(['2017','2018'])

Вышеприведенное не работает с ошибкой: Could not convert object to NumPy datetime

У меня сложилось впечатление, что функции numpy были векторизованы.Может кто-нибудь объяснить, почему это не работает и как я могу решить это?У меня 3000 конвертируемых дат, поэтому идеально подходит то, что не связано с циклом.

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Некоторые из них есть.Я не уверен, как выглядит ваш ввод (list или np.array), но вы можете сделать что-то вроде

np.array(['2017', '2018'], dtype=np.datetime64)

или

my_np_array.astype(np.datetime64)
0 голосов
/ 19 декабря 2018

Вы можете использовать map как дополнительное:

>>> import numpy as np
>>> np.array(list(map(np.datetime64,['2017', '2018'])))
array(['2017', '2018'], dtype='datetime64[Y]')
0 голосов
/ 19 декабря 2018

Чтобы создать массив дат, вы можете сделать:

import numpy as np

print(np.array(['2018', '2017'], dtype=np.datetime64))

Вывод

['2018' '2017']

Более подробное объяснение можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...