解決問題
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)
最後,依然大功告成!