问题有scipy
标记,而scipy
取决于numpy
,所以我假设使用numpy
的答案是可以接受的。
要获得与时间戳t
相关的小时数,您可以采用整数部分t/3600
。然后,要获取每小时的事件数量,可以计算这些整数的出现次数。 numpy功能bincount
可以为你做到这一点。
这里是一个numpy单线计算。我把时间戳在numpy的阵列t
:
In [49]: t = numpy.array([200.0, 420.0, 560.0, 1100.0, 1900.0, 2700.0, 3400.0, 3900.0, 4234.2, 4800.0, 8300.0, 8400.0, 9500.0, 10000.0, 14321.0, 15999.0, 16789.0, 17000.0])
In [50]: t
Out[50]:
array([ 200. , 420. , 560. , 1100. , 1900. , 2700. ,
3400. , 3900. , 4234.2, 4800. , 8300. , 8400. ,
9500. , 10000. , 14321. , 15999. , 16789. , 17000. ])
这是你的计算:
In [51]: numpy.bincount((t/3600).astype(int))
Out[51]: array([7, 3, 4, 1, 3])
大,感谢您的帮助。任何方法去除输出中的小时标记,即输出的“0:”“1:”部分? – bobo 2015-02-10 11:47:41
好的,我编辑了答案。 – 2015-02-10 11:48:43
非常感谢。 – bobo 2015-02-10 11:54:17