【发布时间】:2022-01-05 14:36:37
【问题描述】:
我想创建一个函数 (Python),它返回一维数组的单热编码。 目前我实现了这样的东西,但这似乎很笨重而且根本不干净:
def one_hot_encode(input_array, class_list):
# returns a int representation of a class
class_dict = {}
for class_el in class_list:
class_dict[class_el] = len(class_dict)
for i, el in enumerate(input_array):
if el in class_list:
one_hot_vector = [0] * len(class_list)
one_hot_vector[class_dict[el]] = 1
input_array[i] = one_hot_vector
return input_array
list_with_classes = ["A","A","B","C","A","B"]
one_hot_encode(list_with_classes, ("A", "B", "C")) # A,B,C are example classes
有没有“更好”的方法来实现这个,使用标准库或只是 numpy? (听说过 Scikit-learn 但不知道怎么用)
提前致谢
【问题讨论】: