我正在做一个关于 iris 数据集的教程。在这个过程中,我发现了一段代码,我无法理解:
它由两个ndarrays组成:
iris.target_names
是一个带有目标变量标签的 numpy ndarray:
iris.target_names
>>> array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
clf.predict(test[features])
是一个带有我预测的编码数字的 numpy ndarray:
clf.predict(test[features])
>>> array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2],
dtype=int64)
以下代码为我的预测创建了一个带标签的 ndarray:
iris.target_names[clf.predict(test[features])]
>>> array(['setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa',
'setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa',
'setosa', 'setosa', 'versicolor', 'versicolor', 'versicolor', 'versicolor',
'versicolor', 'versicolor', (...), dtype='<U10')
我已经考虑了一段时间,但我不明白这是如何工作的。因为实际上我们通过一个包含三个以上元素的一维数组来索引一个包含三个元素的一维数组,对吧?这怎么行?
如果有人可以帮助我就这个主题提供一些提示,那就太好了。
谢谢,马库斯