从时间戳数组获取延迟数组

时间:2019-03-01 10:51:13

标签: python sqlite numpy

我想计算信号之间延迟到达的方差。每次出现信号时,都会在SQLite数据库的Logs表的'time'字段中注册一个时间戳。因此,我可以通过以下方式解决问题:

cursor.execute('SELECT time FROM Logs')
rows = cursor.fetchall()
x = numpy.array(rows[:-1])
y = numpy.array(rows[1:])
z = y - x
print "Var  = ", z.var()

那给了我正确的价值。但是...该解决方案使用两个numpy数组(请确保z存储一个信号与前一个信号之间的延迟:len(z)= len(y)-1)。我想知道是否有一种“ numpy”优雅的方式仅用一个数组来执行此操作,而无需遍历所有行。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找np.diff函数。

import numpy as np

# example data
rows = np.r_[:10]

z = rows[1:] - rows[:-1]
print(z)
#[1 1 1 1 1 1 1 1 1]


z = np.diff(rows)
print(z)
#[1 1 1 1 1 1 1 1 1]