天天看点

成功解决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)    

最后,依然大功告成!