编写one_hot 编码时,我们一般会增加一个判断:是否进行one_hot编码。
def one_hot(Train_Y, Test_Y,one_hot=Ture):
if one_hot:
Train_Y = np.array(Train_Y).reshape([-1, 1])
Test_Y = np.array(Test_Y).reshape([-1, 1])
Encoder = preprocessing.OneHotEncoder()
Encoder.fit(Train_Y)
Train_Y = Encoder.transform(Train_Y).toarray()
Test_Y = Encoder.transform(Test_Y).toarray()
Train_Y = np.asarray(Train_Y, dtype=np.int32)
Test_Y = np.asarray(Test_Y, dtype=np.int32)
return Train_Y, Test_Y
但是此时if将失去作用,检查格式也发现没错误,经过多次改写发现,只要将形参one_hot换成别的名字就能正常运行。不知这是为什么,难道时与内置的关键字重复了,不管了,总之换一个名字就好了!