You need to enable JavaScript to run this app. 借助numpy索引实现scikit-learn Iris数据集前5个观测标签映射为花卉名称
优惠活动
大模型
产品
解决方案
定价
更多

借助numpy索引实现scikit-learn Iris数据集前5个观测标签映射为花卉名称

获取scikit-learn Iris数据集前5条记录对应花卉名称的实现方法

基础加载流程

入门阶段操作Iris数据集的第一步是完成标准加载,固定代码如下:

from sklearn.datasets import load_iris
iris = load_iris()

加载完成后可直接调用数据集内置属性:

  • iris.data:存储所有样本的4维特征值
  • iris.target:存储所有样本对应的整数分类标签
  • iris.target_names:按标签顺序存储的花卉类别名,顺序和已知对应关系完全一致:['setosa', 'versicolor', 'virginica']

两种可落地的实现方案

方案1:基于numpy索引提取(匹配你之前了解的实现思路)

利用numpy数组支持整数索引的特性,不需要循环遍历,代码简洁且效率高:

  1. 切片取出前5条样本对应的整数标签:iris.target[:5]
  2. 把取出的标签数组作为下标,直接索引类别名数组iris.target_names,即可一次性拿到所有对应花卉名称

完整可运行代码:

# 提取前5条样本的分类标签
first5_labels = iris.target[:5]
# 通过numpy索引映射为花卉名称
first5_flower_names = iris.target_names[first5_labels]
print(first5_flower_names)

运行后输出结果为:['setosa' 'setosa' 'setosa' 'setosa' 'setosa']。由于Iris数据集的存储顺序是前50条全为setosa类别,因此开头5条记录的类别均为setosa。

方案2:手动建立映射关系实现

如果不使用数据集自带的类别名数组,完全按照已知的标签对应规则实现映射,可通过字典匹配的方式完成,适合理解标签-名称的转换逻辑:

# 按已知对应关系建立标签映射字典
label_category_map = {
    0: 'setosa',
    1: 'versicolor',
    2: 'virginica'
}
# 遍历前5条标签匹配对应名称
first5_flower_names = [label_category_map[label] for label in iris.target[:5]]
print(first5_flower_names)

该方案的输出结果和第一种方案完全一致。

常见注意事项

  • 取前5条样本的切片写法为[:5],对应数组下标0到4的记录,不要写错范围
  • 优先选择numpy索引的实现写法,避免提前把全量标签转换为字符串再做切片的冗余操作,代码运行效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 10:15:04