在python 3.X中,ndarray在空白情况下的不耐行为



当我使用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]: ''

到底是什么代码导致了最后一个错误?

相关内容

  • 没有找到相关文章