是否有一个直方图函数可以处理任何一般的 bin?
在我的神经科学应用程序中,我有两个一维数组:spikes
和time_centers
和一个参数time_window
。我的目标是输出名为 的数组firing_rate
,其大小与time_centers
定义为相同firing_rate[i]=len(abs(spikes-time_centers[i])<time_window)
,以便计算time_center
宽度间隔中每个箱附近的尖峰数time_window
。
我很快起草了一个函数,但我有点担心性能,因为我需要处理大量的脉冲序列。
def fr(spikes,time_bins,time_window):
rate=np.zeros(time_bins.size)
for i,t in enumerate(time_bins):
rate[i]= sum(np.abs(spikes-t)<time_window)
return rate
是否可以利用spikes
数组已排序的事实?即使我使用相同大小 ( time_window
) 的垃圾箱,我的垃圾箱也可能重叠,或者垃圾箱之间可能存在可变间隙。
通常spikes
包含约 1000 个元素,time_centers
约 50 个箱,我需要为每个会话计算 30000 个神经元。