Что делает цикл for в следующем коде? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь научиться научиться (sclearn).Ниже приведен фрагмент кода, который пытается создать фрейм данных с помощью statsmodels.api из набора данных iris.Но я не уверен, как работает цикл for и типы данных iris.target_names[x] & target из sci-kit.Кто-нибудь может объяснить, пожалуйста?

from sklearn import datasets ## Get dataset from sklearn

## Import the dataset from sklearn.datasets
iris = datasets.load_iris()

## Create a data frame from the dictionary
species = [iris.target_names[x] for x in iris.target]

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

Это функционально эквивалентно следующему:

species = []
for x in iris.target:
    species.append(iris.target_names[x])

По сути, он применяет функцию к каждому элементу x в повторяемом элементе и создает список из результатов.

Выполнениеоперация над списком таким способом немного быстрее, чем ранее упомянутый метод, и более читабельна (на мой взгляд).

1 голос
/ 09 июля 2019

Это понимание списка, и оно делает

species = []

for x in iris.target:
    val = iris.target_names[x]
    species.append(val)

for получает значения один за другим из столбца iris.target и присваивает x, а затем использует x для получениязначение из столбца iris.target_names и добавляет это значение в список `видов.

Таким образом, он преобразует значения target в значения target_name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...