【发布时间】:2020-01-06 15:55:04
【问题描述】:
我正在尝试根据其值将具有range(0,5) 值的一列数据转换为 6 列。
例如,如果它的值为 0,那么这六个中的第一列变为 1,其他变为 0,依此类推。但是,由于我的目标的形状是 (1034892, 1),它需要很多时间,甚至有时它会崩溃。这段代码适用于 500000 条数据,但对于这个数量却没有。
有没有办法让这么多的数据成为可能?
def convert_to_num_class(target):
for i, value in enumerate(target):
if i ==0:
y_new =np.array( np.eye(6)[int(value[0])])
else:
y_new = np.vstack((y_new, np.eye(6)[int(value[0])]))
return(y_new)
【问题讨论】:
-
听起来像是 sklearn 的 One-Hot Encoder 的自制版本。使用内置有许多优化好处
-
@martineau 是的,这是可能的。非常感谢!