现有的数据是有探测器测得的脉冲信号,需要对其发生时间进行一个估计。
主要思想是,通过hist方法将不同时间间隔出现的次数进行一个计数。
经过统计可以得到
[1.4000000e+013.2000000e+01,7.8000000e+01,1.1600000e+02,1.8800000e+02,2.2200000e+02,2.6300000e+02,3.1200000e+02,3.2200000e+02,4.2100000e+02,4.8800000e+02,5.0400000e+02,5.1900000e+02,5.7200000e+02,7.2600000e+02,9.4500000e+02,1.0100000e+03,1.0650000e+03,1.1900000e+03]
这些位置出现了脉冲峰,需要验证它们之间出现的间隔分布。
第一步,读取脉冲位置并计算脉冲间时间间隔
def read_diff():
d = pd.read_table('data/peaks.csv', names=['pks', 'locs', 'None'], delim_whitespace=True)
time = d['locs']
dif = []
for i, ele in enumerate(time[1:]):
dif.append(ele - time[i])
return dif
使用pandas的read_table方法,由于是在win平台下,各种格式问题,导致读入后会出现三列(应该为峰值一列,位置一列),最后一列应该为win下的’\t’,想着不碍事,就没仔细研究。
第二步,对间隔频率进行统计
对时间间隔进行统计可以直接使用Pandas.Series的的hist方法,也可以使用pylab中的hist方法。
其实Pandas中的画图方法也是调用的matplotlib,都可以在画出直方图的同时进行密度估计,但是这两个方法有一个最大的区别就是,pylab中的hist可以指定一个range参数.
```matplotlib.pyplot.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, hold=None, data=None, **kwargs)
range : tuple or None, optional
The lowe