基于多个条件创建独热标签,进行独热编码

3
例如,我有以下内容:[1,2,3,5],我想要进行热编码。通常的结果如下:
[1,0,0,0,0]
[0,1,0,0,0]
[0,0,1,0,0]
[0,0,0,0,1]

但是相比于那种方法,我想要一种有条件的独热编码只有两个类别。所有小于3的值都被赋值为1,而大于等于3的值则被赋值为0,就像这样:

[1,0]
[1,0]
[0,1]
[0,1]

我知道如何做第一个,但是我在第二个问题上遇到了困难。请问有人可以帮我吗?

1个回答

3

使用列表推导式:

data = [1,2,3,5]
CUTOFF = 3
[[1, 0] if val < CUTOFF else [0, 1] for val in data]

这将输出:
[[1, 0], [1, 0], [0, 1], [0, 1]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接