当我使用scikit学习分类器模型预测类时
class=modelftr.predict(X_t)
类变量返回
>>class
array(['class1'],dtype='<U47')
而当我将变量定义为时
x=np.ndarray([],dtype='<U47')
调用x[0]
返回
追踪(最近一次通话):
文件"&";,第1行,在中
IndexError:数组的索引太多
当我将变量定义为:时
class=np.ndarray([''],dtype='<U47')
错误生成为:
追踪(最近一次通话):
文件"&";,第1行,在中
TypeError:需要一个整数
为什么会有这样的行为?
第一个例子是一个1元素数组:
In [50]: a=np.array(['one'],dtype='U10')
In [51]: a.shape
Out[51]: (1,)
In [52]: a[0]
Out[52]: 'one'
第二个是一个包含0个元素的数组。
In [53]: a=np.array([],dtype='U10')
In [54]: a.shape
Out[54]: (0,)
唯一允许的索引是使用空元组:
In [56]: a[()]
Out[56]:
array([],
dtype='<U10')
在新的numpy上,a[0]
产生IndexError: index 0 is out of bounds for axis 0 with size 0
至于最后一个,创建和简单索引与第一个一样有效。
In [58]: a=np.array([''],dtype='U10')
In [59]: a
Out[59]:
array([''],
dtype='<U10')
In [60]: a[0]
Out[60]: ''
到底是什么代码导致了最后一个错误?