使用scipy计算没有函数的时间序列数据积分

时间:2016-04-12 20:19:56

标签: python csv numpy scipy

我有一个带有y值的时间序列数据(大约6000个样本数据),在csv文件中,在13分钟内没有该函数。 例如: 2016-02-13 00:00:00; 0353 2015-02-13 00:00:13; 0362 ....

我希望在9和14 o&时钟范围内进行整合。 我如何从csv读取值到np.array(数据)?

Simpson方法将整个曲线整合到y下。 我在文档中读过。关于我的方法是:

from scipy.integrate import simps import numpy as np y = np.array(data) I = integrate.simps(y,dx=12) print(I)

我如何整合范围时间(上午9点至下午2点 - 09:00:00-14:00:00)?

1 个答案:

答案 0 :(得分:1)

我很难用includeLocation="true"处理数据中的额外分号,所以这里是一个手写的数据导入。

np.loadtxt

输出:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as p
from matplotlib.dates import strpdate2num, num2date
fn="example_data.txt"

#2016-02-13 00:00:00 ; 0,353
#2015-02-13 00:00:13 ; 0,362

def dateread(x):
    return num2date(strpdate2num('%Y-%m-%d %H:%M:%S')(x))

tims, vals=[],[]

f=open(fn,'r')
for line in f.readlines():
    #print line
    a=line.split()
    #print a
    time=dateread(a[0]+' '+a[1])
    value= float(a[3].replace(",","."))
    tims.append(time)
    vals.append(value)

print vals
print tims

p.plot(tims,vals)

enter image description here

时间现在是正确的日期时间对象,因此可以进行比较。要选择您想要查看的时间:Python time comparison