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

为何代码X=boston.data[:, None, 6]能将X缩减为每行1个元素?

拆解代码:如何让每行仅保留1个元素

先从数据集本身说起:

  • boston = datasets.load_boston() 是加载经典的波士顿房价数据集,boston.data是一个二维数组——行对应单个样本(比如一套房子),列对应不同的特征(比如犯罪率、房间数量等,一共13个特征)。

重点看核心的一行X = boston.data[:, None, 6],拆成三部分理解:

  • 第一个::表示保留所有样本行,不丢弃任何一个房子的数据。
  • None:这是numpy的小技巧,给数组新增一个维度,把原来的「行×特征」二维结构,临时变成「行×1×特征」的三维结构。
  • 最后的6:表示只取第7个特征(编程里索引从0开始数,0是第一个特征,6就是第七个)。

这么组合起来,最终得到的X是一个「样本数 × 1」的二维数组——也就是每个样本(每行)里只装了这一个特征值,完美匹配y = boston.target的维度(y是一维数组,每个元素对应一个样本的房价)。

要是直接写X = boston.data[:,6],得到的是一维数组,很多机器学习模型会因为输入维度不符合要求报错,加个None就把它转成了模型能识别的二维结构。

内容的提问来源于stack exchange,提问作者Anita Durg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:05:17