Python 名称错误:名称';标签';没有定义

Python 名称错误:名称';标签';没有定义,python,Python,下面是《用Python构建机器学习系统》(Richart,Pedro Coelho)一书中的逐行示例 导入iris数据集后,我们希望提取具有Setosa的数据集 data = load_iris() features = data['data'] plength = features[:, 2] # use numpy operations to get setosa features is_setosa = (labels == 'setosa') 我知道了 >>> is_

下面是《用Python构建机器学习系统》(Richart,Pedro Coelho)一书中的逐行示例

导入iris数据集后,我们希望提取具有Setosa的数据集

data = load_iris()
features = data['data']
plength = features[:, 2]
# use numpy operations to get setosa features
is_setosa = (labels == 'setosa')
我知道了

>>> is_setosa = (labels == 'setosa')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'labels' is not defined

如果您只是在iPython控制台中键入
数据
,您将看到数据集的描述。特别是有两个字段:
data['target']
包含数字标签{0,1,2},对应于
data['target_names']
中报告的名称,即{'setosa','versicolor','virginica'}

因此,您可能可以定义
标签
,如下所示:

labels = map(lambda x: dict(enumerate(data['target_names']))[x], data['target'])

这主要是因为书中的代码没有定义“标签”。根据上下文,添加以下代码:

target = data['target']
target_names = data['target_names']
labels=np.array([target_names[i] for i in target])

很明显,变量
标签
没有定义!很可能你可以做一些像数据['labels']或数据。标签。。。检查
is_setosa
变量中不包含布尔值的数据对象。为此,您正在对
标签==“setosa”
进行比较。现在,以前没有定义
标签。介意在上面写一个声明吗,比如
labels=“
?@FLab请看我的编辑。
- class:\n                - Iris-Setosa\n                - Iris-Versicolour\n                - Iris-Virginica\n    :
labels = map(lambda x: dict(enumerate(data['target_names']))[x], data['target'])
target = data['target']
target_names = data['target_names']
labels=np.array([target_names[i] for i in target])