数组中的元素多于切片

问题描述

我正在散布一个numpy数组(一个栅格图)的非零元素,但是该数组具有的点数超过了实际值。

fig,ax = plt.subplots(2,1,figsize = (20,21))

raster_plot(all_concatenated[subject_names[0]][:,0:10000],ax = ax[0]) raster_plot(all_concatenated[subject_names[0]][:,0:8000],ax = ax[1])

其中

def raster_plot(spikes,ax,t = 500): 

    binned_spikes = bin_time_series(spikes,binsize = t,total_frame = spikes.shape[1])
    n,t,l = binned_spikes.shape
    
    #cmap = plt.cm.Spectral
    #norm = plt.normalize(vmin = 0,vmax = float(np.max(spikes)))
    
    for i in range(n):
        for k in range(l):
            for j in range(t):
                if binned_spikes[i][j][k] == 0: pass
                else:
                    ax.scatter(k*t+j,i,s = 5,c = 'b',marker = 'x')#,norm = norm,cmap = cmap)
                    ax.set_title('Spike Raster Plot',fontsize = 20)
                    ax.set_xlabel('Time (Frames)',fontsize = 15)
                    ax.set_ylabel('Neuron ID',fontsize = 15)
                    ax.set_xticks([t*i for i in range(l+1)])
                    ax.set_yticks([5*i for i in range(int(n/5)+1)]+[n])
                    ax.tick_params(axis = 'x',labelsize = 10)
                    ax.tick_params(axis = 'y',labelsize = 13)

def bin_time_series(array,binsize,total_frame):

    binned_spikes = []

    for i in range(len(array)):
        A = array[i].reshape(binsize,int(total_frame/binsize))
        binned_spikes.append(A)
    
    return(np.array(binned_spikes,dtype=np.int32))

当我查看ID编号为94-113的前8000个时间点的神经元没有峰值时,这实际上是数组,但是当我查看前10000个时间点时,我看到了不应该存在的额外峰值。一件奇怪的事是那些不应该在10000条中出现的尖峰都接近500的倍数。

这是稀疏问题吗?我要疯了还是我想念什么?

raster plots

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)