我想计算信号之间延迟到达的方差。每次出现信号时,都会在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”优雅的方式仅用一个数组来执行此操作,而无需遍历所有行。
答案 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]