我试图采取1和0的一维数组(主要是零)和卷积它与高斯得到一个更概率的表示。当我使用scipy.ndimage.gaussian_filter1d时,我总是得到满是零的数组。
spike_bins, _ = np.histogram(spike_times,
bins=np.linspace(start_time, end_time, bin_number))
### CONVOLVE ##
#spike_bins_convolved = gaussian_filter1d(spike_bins, 1, mode = 'constant')
#print(spike_bins_convolved)
#print(np.sum(spike_bins_convolved))
###############
spike_bins.reshape(1, -1) #single sample
####### TRYING IT AFTER THIS STEP INSTEAD #######
spike_bins_convolved = gaussian_filter1d(spike_bins, 1, mode = 'constant')
print(np.sum(spike_bins_convolved))
这是我上面的代码,我试着在两个不同的地方运行它,看到它在两个地方都返回了一个全零的数组,即使输入数组不全是零。
1条答案
按热度按时间gkl3eglg1#
问题是
gaussian_filter1d()
返回与参数相同dtype的数组。如果你传递给它一个整数数组,它会给予你一个整数数组,即使这需要将每个值舍入为零。解决方案是将计数转换为浮点数,它可以处理非整数值。你可以用
spike_bins.astype('float64')
来实现。此问题的示例:
如果
gaussian_filter1d()
的输入为整数dtype,则打印[0 0 0]
,但如果给定浮点dtype,则打印非零值。