天天看點

成功解決TypeError: unhashable type: 'numpy.ndarray'

解決問題

TypeError: unhashable type: 'numpy.ndarray'

解決思路

類型錯誤:不可hash的類型:'numpy.ndarray'

解決方法

總結網友以及部落客的思路,如下:

T1、先嘗試修改變量名:看到莫名其妙的TypeError要考慮是否存在變量名重複,或者是由于變量名與占位符名沖突導緻的。

T2、轉為numpy數組:因為得到的X_test_label,其實是 DataFrame格式,故該格式是不能用于疊代的。嘗試可将其轉化成 np.array 格式的,如 X_train = np.array(X_train)

X_test_label=np.array(X_test_label)

T3、如果還出現,此時就要采用,在T2的基礎上,對array類型數組進行全部[取0]

>>> data

array([[  1.,   2.,   3.],

      [  3.,   4.,   5.],

      [  5.,   6.,   7.],

      [  8.,   9.,  10.]])

>>> hsplit(data,3)[0]

array([[ 1.],

      [ 3.],

      [ 5.],

      [ 8.]])

哈哈,大功告成!

T4、補充,有很多網友私下咨詢,以上方法還會出現錯誤。

部落客經過多方嘗試,在T2的基礎上,繼續将一個字元串數組轉換成整型數組

最後,總結

print('原始:',X_test_label)

X_test_label=np.array(X_test_label)        #轉為numpy數組

print('np.array後:',X_test_label)

X_test_label=list(map(int,X_test_label))   #将一個字元串數組轉換成整型數組

print('np.array後:',X_test_label)    

最後,依然大功告成!