数组错误brian2-python中的索引太多

时间:2019-01-08 11:03:42

标签: python

我正在尝试使用下面的代码将一个数组值与上一个和下一个数组进行比较,但是我在数组错误中得到了太多的索引,我想绕过它,但是我不知道如何。

spikes=print(M.V[0])
#iterate in list of M.V[0] with three iterators to find the spikes
for i,x in enumerate(M.V[0]):
    if (i>=1):
        if x[i-1]<x[i] & x[i]>x[i+1] & x[i]>25*mV:
            spikes+=1
print(spikes)

我得到这个错误:

IndexError                                Traceback (most recent call last)
<ipython-input-24-76d7b392071a> in <module>
      3 for i,x in enumerate(M.V[0]):
      4     if (i>=1):
----> 5         if x[i-1]<x[i] & x[i]>x[i+1] & x[i]>25*mV:
      6             spikes+=1
      7 print(spikes)

~/anaconda3/lib/python3.6/site-packages/brian2/units/fundamentalunits.py in __getitem__(self, key)
   1306         single integer or a tuple of integers) retain their unit.
   1307         '''
-> 1308         return Quantity(np.ndarray.__getitem__(self, key), self.dim)
   1309 
   1310     def __getslice__(self, start, end):

IndexError: too many indices for array

请注意,M.V [0]本身就是一个数组

1 个答案:

答案 0 :(得分:0)

您说“ M.V [0]本身就是一个数组”。但是,您需要详细说明。 M可能是https://brian2.readthedocs.io/en/stable/user/recording.html#recording-spikes中详述的StateMonitor对象。这是正确的吗?

如果是这样,则需要提供完整和最少的代码才能了解您的详细信息。例如,您在NeuronGroup对象中的神经元模型是什么?更重要的是,为什么不使用SpikeMonitor类极大地简化您的计划,而不是自己查找峰值事件? Brian2中的SpikeMonitor类:https://brian2.readthedocs.io/en/stable/reference/brian2.monitors.spikemonitor.SpikeMonitor.html