Хорошо, потерпите меня, я только начал использовать NumPy.
У меня есть временной ряд, разделенный на несколько файлов.Каждый файл захватывает данные за один день.Поле времени в каждой записи - это просто миллисекунды с начала этого дня
Теперь я пытаюсь прочитать эти данные, используя numpy, но у меня возникают проблемы с преобразованием миллисекунд в np.datetime64
.
То, что у меня есть софар:
t_base = np.datetime64(<some_date>)
dtype = np.dtype([
("t", "i4"),
...<other fields here>...
])
data = np.fromfile(filename, dtype)
Это дает мне одномерный ndarray
из np.void
.Пока все хорошо.
Что я пробовал:
for record in np.nditer(data, op_flags["readwrite"]):
record["t"] = t_base + np.timedelta64(int(record["t"]), "ms")
К сожалению, это не меняет тип.Вместо этого он преобразует построенный datetime64
обратно в int32
, что неверно, потому что int32 не имеет диапазона для захвата времени в миллисекундах.Итак, как мне сделать это эффективным способом?Очевидно, что после преобразования мне больше не нужно смещение в миллисекундах.
Или, альтернативно, есть ли способ с fromfile
для чтения int32
в тип int64
?Тогда я могу использовать int64
как метку времени вместо datetime64
.