Я делаю урок с набором данных радужной оболочки. В этом процессе я нашел фрагмент кода, который я не могу понять:
Он состоит из двух ndarrays:
iris.target_names
- нудистый символ с метками целевой переменной:
iris.target_names
>>> array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
clf.predict(test[features])
- нудистый ндаррэй с закодированным цифровым символом моих предсказаний:
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')
Я думал об этом некоторое время, но я не понимаю, как это работает. Потому что на самом деле мы индексируем одномерный массив с тремя элементами с помощью одномерного массива с более чем тремя элементами, верно? Как это может работать?
Было бы замечательно, если бы кто-то мог помочь мне с некоторыми подсказками по этой теме.
Спасибо, Маркус