如何为sklearn糖尿病数据集的所有输入数据添加值为1的新特征?
给糖尿病数据集添加全1特征列的实现方法
方法一:使用Numpy拼接(推荐,适合矩阵操作场景)
先提取输入特征矩阵,再生成对应行数的全1列,最后水平拼接:
import sklearn.datasets import numpy as np dataset = sklearn.datasets.load_diabetes() X = dataset.data # 获取原始输入特征矩阵 # 生成与原始特征行数一致的全1列 ones_column = np.ones((X.shape[0], 1)) # 水平拼接原始特征和全1列 X_with_ones = np.hstack((X, ones_column))
验证:执行print(X_with_ones.shape)会输出(442, 11),原始特征为10列,新增1列后总数为11列。
方法二:使用Pandas DataFrame处理(适合数据清洗/分析场景)
如果习惯用DataFrame操作,可以这样实现:
import sklearn.datasets import pandas as pd dataset = sklearn.datasets.load_diabetes() X = dataset.data # 转为DataFrame,保留原始特征名 df = pd.DataFrame(X, columns=dataset.feature_names) # 添加名为"ones"的全1列 df["ones"] = 1 # 若需要转回Numpy数组,执行以下代码 X_with_ones = df.values
内容的提问来源于stack exchange,提问作者gornisak
相关产品推荐
相关产品推荐

