2016-05-05 47 views
0

當我使用scikit學習分類模型不一致的行爲的情況下,空白

class=modelftr.predict(X_t) 

類變量返回

>>class 

array(['class1'],dtype='<U47') 

而當我有預測類中定義的變量作爲

x=np.ndarray([],dtype='<U47')

主叫x[0]個回報

Traceback (most recent call last):

File "", line 1, in

IndexError: too many indices for array

當我定義一個變量:

class=np.ndarray([''],dtype='<U47') 

誤差產生的:

Traceback (most recent call last):

File "", line 1, in

TypeError: an integer is required

爲什麼這樣的行爲?

回答

2

第一個例子是一個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]: '' 

什麼代碼,確切地說,是生產,去年的錯誤?

+0

最後的錯誤是在聲明本身時產生的,我不確定,但我覺得dtype是負責任的。 –

相關問題