好的,请耐心等待我,我才开始使用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}}。