如何在np.void的ndarray中有效地将毫秒偏移量转换为np.datetime64

时间:2018-05-18 08:21:41

标签: python numpy

好的,请耐心等待我,我才开始使用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转换回fromfile,这是不正确的,因为int32没有捕获时间的范围(以毫秒为单位)。那么如何以有效的方式完成这项工作呢?显然,转换后我不再需要毫秒级的偏移量。

或者,int32是否有办法将int64读入int64类型?然后我可以使用datetime64作为时间戳而不是{{1}}。

0 个答案:

没有答案