例如,我有以下内容:[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以上或等于3的所有值均为值0,如下所示:

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

我知道如何做第一个,但我正在努力做第二个.谁能帮帮我吗?

推荐答案

使用列表理解:

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]]

Python相关问答推荐

DataFrame groupby函数从列返回数组而不是值

点到面的Y距离

试图找到Python方法来部分填充numpy数组

为什么我的Python代码在if-else声明中的行之前执行if-else声明中的行?

为什么符号没有按顺序添加?

如何获得每个组的时间戳差异?

Python—从np.array中 Select 复杂的列子集

在vscode上使用Python虚拟环境时((env))

在pandas数据框中计算相对体积比指标,并添加指标值作为新列

如何使用OpenGL使球体遵循Python中的八样路径?

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

在numpy数组中寻找楼梯状 struct

无法在Spyder上的Pandas中将本地CSV转换为数据帧

提取最内层嵌套链接

如何防止html代码出现在quarto gfm报告中的pandas表之上

用0填充没有覆盖范围的垃圾箱

根据过滤后的牛郎星图表中的数据计算新系列

Groupby并在组内比较单独行上的两个时间戳

Python键盘模块不会立即检测到按键

大Pandas 每月重新抽样200万只和300万只