Python 2.7 Python 2:类型错误;只有整数标量数组才能转换为标量索引;将pd.read()与neo.Spike2IO一起使用

Python 2.7 Python 2:类型错误;只有整数标量数组才能转换为标量索引;将pd.read()与neo.Spike2IO一起使用,python-2.7,jupyter-notebook,Python 2.7,Jupyter Notebook,我有代码要加载到Spike2.smr文件中,并在Jupyter中读取它们。我的代码在两天前运行良好,现在,无论是加载到的文件还是加载到的代码都没有任何更改,因此无法工作。问题代码如下所示 单元格1输入(显示我的软件包的版本): 单元1输出: Python version: 2.7.13 |Anaconda custom (64-bit)| (default, Dec 20 2016, 23:09:15) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] Packa

我有代码要加载到Spike2.smr文件中,并在Jupyter中读取它们。我的代码在两天前运行良好,现在,无论是加载到的文件还是加载到的代码都没有任何更改,因此无法工作。问题代码如下所示

单元格1输入(显示我的软件包的版本):

单元1输出:

Python version: 2.7.13 |Anaconda custom (64-bit)| (default, Dec 20 2016, 23:09:15) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

Packages versions: 
matplotlib 1.4.3
matplotlib-venn 0.11.3
neo 0.3.3
numpy 1.12.0
pycosat 0.6.1
nose 1.3.7
backports.ssl-match-hostname 3.5.0.1
pandas 0.19.2
scipy 0.15.1
单元2输入(在我的模块中加载):

现在,我使用以下命令加载Spike2.smr文件:

r = neo.Spike2IO("Rawdata/143-16/nerve.smr").read()[0]    
并获取以下类型错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-3-f81fd520a4c5> in <module>()
----> 1 r = neo.Spike2IO("Rawdata/143-16/nerve.smr").read()[0]

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/baseio.pyc in read(self, lazy, cascade, **kargs)
    107             if not cascade:
    108                 return bl
--> 109             seg = self.read_segment(lazy=lazy, cascade=cascade,  **kargs)
    110             bl.segments.append(seg)
    111             create_many_to_one_relationship(bl)

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc in read_segment(self, take_ideal_sampling_rate, lazy, cascade)
    120             if channelHeader.kind in [1, 9]:
    121                 #~ print 'analogChanel'
--> 122                 anaSigs = self.readOneChannelContinuous( fid, i, header, take_ideal_sampling_rate, lazy = lazy)
    123                 #~ print 'nb sigs', len(anaSigs) , ' sizes : ',
    124                 for anaSig in anaSigs :

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc in readOneChannelContinuous(self, fid, channel_num, header, take_ideal_sampling_rate, lazy)
    240 
    241         anaSigs = [ ]
--> 242         if channelHeader.unit in unit_convert:
    243             unit = pq.Quantity(1, unit_convert[channelHeader.unit] )
    244         else:

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc in __getattr__(self, name)
    444                 else:
    445                     l = np.fromstring(self.array[name][0], 'u1')
--> 446                 return self.array[name][1:l+1]
    447             else:
    448                 return self.array[name]

TypeError: only integer scalar arrays can be converted to a scalar index    
TypeError回溯(最近一次调用)
在()
---->1 r=neo.Spike2IO(“Rawdata/143-16/nerve.smr”).read()[0]
/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/baseio.pyc在read中(self、lazy、cascade、**kargs)
107如果不是级联:
108返回bl
-->109 seg=self.read_段(lazy=lazy,cascade=cascade,**kargs)
110 bl.段追加(seg)
111创建多对一关系(bl)
/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc在read_段中(self,take_理想采样率,lazy,级联)
120如果[1,9]中的channelHeader.kind:
121#~打印“模拟香奈儿”
-->122 anaSigs=self.readOneChannelContinuous(fid、i、标头、理想采样率、惰性=惰性)
123#~打印“nb sigs”,len(anaSigs),“尺寸:”,
124对于anaSig中的anaSig:
/readOneChannelContinuous中的home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc(self、fid、channel\u num、header、take\u理想采样率、lazy)
240
241 anaSigs=[]
-->242如果channelHeader.unit在unit_转换中:
243单位=pq.数量(1,单位转换[channelHeader.单位])
244其他:
/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc in_u____getattr____(self,name)
444其他:
445 l=np.fromstring(self.array[name][0],'u1')
-->446返回self.array[name][1:l+1]
447其他:
448返回self.array[名称]
TypeError:只能将整数标量数组转换为标量索引
“neo.Spike2IO”(“filename.smr”)工作正常,但只要我添加“read()[0]“第二部分,当我得到打字错误时。我仔细阅读了这个类型错误,我看到的唯一答案是文件可能已损坏。我删除了本地文件并重新下载了它,还下载了另一个类似的文件,以防另一个文件的主文件损坏。我在这两个新文件上重试了我的代码,并收到了这两个文件的类型错误代码。如前所述,代码在两天前工作正常,现在不会加载任何.smr文件。我浏览并更新了我的所有模块、pip和anaconda,所有这些都没有帮助


到一个简短的示例.smr文件(只有3.1MB),为了共享而剪切。它也给出了类型错误。有什么想法吗?谢谢。

我通过进一步更新我的模块和Anaconda本身(及其所有相应模块),解决了这个问题。某些内容一定已还原为旧版本

更新Anaconda中每个包的代码为:

conda update --all    
更多帮助可在康达主页上找到。关闭然后重新启动计算机也有助于确保实现所有这些更新

TypeError                                 Traceback (most recent call last)
<ipython-input-3-f81fd520a4c5> in <module>()
----> 1 r = neo.Spike2IO("Rawdata/143-16/nerve.smr").read()[0]

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/baseio.pyc in read(self, lazy, cascade, **kargs)
    107             if not cascade:
    108                 return bl
--> 109             seg = self.read_segment(lazy=lazy, cascade=cascade,  **kargs)
    110             bl.segments.append(seg)
    111             create_many_to_one_relationship(bl)

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc in read_segment(self, take_ideal_sampling_rate, lazy, cascade)
    120             if channelHeader.kind in [1, 9]:
    121                 #~ print 'analogChanel'
--> 122                 anaSigs = self.readOneChannelContinuous( fid, i, header, take_ideal_sampling_rate, lazy = lazy)
    123                 #~ print 'nb sigs', len(anaSigs) , ' sizes : ',
    124                 for anaSig in anaSigs :

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc in readOneChannelContinuous(self, fid, channel_num, header, take_ideal_sampling_rate, lazy)
    240 
    241         anaSigs = [ ]
--> 242         if channelHeader.unit in unit_convert:
    243             unit = pq.Quantity(1, unit_convert[channelHeader.unit] )
    244         else:

/home/wolverine/anaconda/lib/python2.7/site-packages/neo/io/spike2io.pyc in __getattr__(self, name)
    444                 else:
    445                     l = np.fromstring(self.array[name][0], 'u1')
--> 446                 return self.array[name][1:l+1]
    447             else:
    448                 return self.array[name]

TypeError: only integer scalar arrays can be converted to a scalar index    
conda update --all