Numpy如何将二元分类列转换为Numpy数组
在本文中,我们将介绍如何将二元分类列(即只有两个值的列,如‘是’和‘否’或‘真’和‘假’)转换为Numpy数组。这种情况经常出现在机器学习中。
阅读更多:Numpy 教程
示例数据
我们先创建示例数据。下面是一个包含“是”和“否”的二元分类列的数据框。
import pandas as pd
data = {
'col1': ['是', '否', '是', '是', '否', '是', '否', '否', '否', '是'],
'col2': [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
}
df = pd.DataFrame(data)
使用np.where()进行转换
我们可以使用Numpy中的np.where()
函数,将分类列转换为1和0的数组。其中,np.where()
接受三个参数:条件(即分类列),条件成立时的值(1),否则的值(0)。
import numpy as np
arr = np.where(df['col1'] == '是', 1, 0)
print(arr)
输出:
[1 0 1 1 0 1 0 0 0 1]
我们可以将这个数组作为新的列添加到数据框中。
df['new_col'] = arr
print(df)
输出:
col1 col2 new_col
0 是 5 1
1 否 6 0
2 是 7 1
3 是 8 1
4 否 9 0
5 是 10 1
6 否 11 0
7 否 12 0
8 否 13 0
9 是 14 1
使用np.select()进行转换
除了np.where()
,我们还可以使用np.select()
函数,将多个条件映射到多个值。但是,对于二元分类列,np.where()
更加方便。
总结
在本文中,我们介绍了如何将二元分类列转换为Numpy数组。我们可以使用np.where()
函数,将分类列转换为1和0的数组,并将其添加到数据框中,以便后续机器学习任务的使用。