成功解决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)
最后,依然大功告成!