Python numpy时间序列数据-矢量化填充间隙并计算增量

Python numpy时间序列数据-矢量化填充间隙并计算增量,python,arrays,numpy,tensorflow,Python,Arrays,Numpy,Tensorflow,我从csv中读取了一些数据,使用genfromtxt和hstack连接数据,结果形成(5413260,)(保存文件大约需要17分钟,~1GB.npy) 数据格式如下: timedelta64 1, temp1A, temp 1B, temp1C, ... timedelta64 2, temp2A, temp 2B, temp2C, ... >>> data[1:3] array([ ('2009-01-01T18:41:00', 755, 855, 755, 855, 7

我从csv中读取了一些数据,使用
genfromtxt
hstack
连接数据,结果形成
(5413260,)
(保存文件大约需要17分钟,~1GB.npy)

数据格式如下:

timedelta64 1, temp1A, temp 1B, temp1C, ...
timedelta64 2, temp2A, temp 2B, temp2C, ...


>>> data[1:3]
array([ ('2009-01-01T18:41:00', 755, 855, 755, 855, 743, 843, 743, 843, 2),
       ('2009-01-01T18:43:45', 693, 793, 693, 793, 693, 793, 693, 793, 1)],
      dtype=[('datetime', '<M8[s]'), ('sensorA', '<u4'), ('sensorB', '<u4'), ('sensorC', '<u4'), ('sensorD', '<u4'), ('sensorE', '<u4'), ('sensorF', '<u4'), ('sensorG', '<u4'), ('sensorH', '<u4'), ('signal', '<u4')])
并填写:


timedelta64 2-timedelta64 1因为我使用的是
genfromtxt
和异构
dtypes
,所以向量化操作是通过命名列完成的:

正在生成numpy.datetime64的范围:

在numpy中连接大型数组速度较慢,最好使用预分配的数组并使用切片填充:

然后,如何基于匹配的datetime64合并两个结构化/记录数组,并屏蔽适当的字段。在这里可以找到:


整体加速看起来像100多天=>这似乎不是一个答案。关于你的问题的更多信息应该添加到问题本身中。答案肯定没有复制和粘贴我的数据特有的所有代码。我希望我在这里收集到的信息将有助于其他刚接触numpy的人,他们在预处理时间序列数据时遇到困难。
timedelta64 1, temp1A - temp1B, temp 1B - temp1C, ...
timedelta64 1 + shift, 0, 0, 0, CONSTANT, ...