You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用StandardScaler对指定列标准化时如何选取第5、6、9列

非连续列选取实现标准化的方案

你当前使用的[:, 5:7]是数组的连续切片语法,仅支持选取索引连续的列,无法直接取到间隔的第9列。要同时选中索引为5、6、9的三列做标准化,直接将需要选取的列索引组成列表传入索引位置即可,原有标准化逻辑不需要改动。

修改后的可运行代码如下:

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
# 传入列索引列表[5,6,9],同时选中三列完成拟合与转换
X_train[:, [5, 6, 9]] = sc.fit_transform(X_train[:, [5, 6, 9]])

注意事项

  • 按照你之前X_train[:,5:7]选取第5、6列的写法,你当前用的是0起始索引规则,这里直接传入索引9即可对应你要选的第9列;如果你是按日常从1开始计数列序号,对应索引要改成8。
  • 后续对测试集、验证集做相同规则的标准化时,要选取相同的列,且直接用已经在训练集上拟合好的sc实例做转换,不要重新拟合,示例代码:
    X_test[:, [5, 6, 9]] = sc.transform(X_test[:, [5, 6, 9]])
    
  • 如果你的输入数据是pandas DataFrame格式,除了传整数索引,也可以直接传入目标列名组成的列表选列,使用逻辑完全一致。

内容的提问来源于stack exchange,提问作者Vaibhav Yalla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:57:21