Истинное значение массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all (). OneHotEncoder - PullRequest
0 голосов
/ 18 июня 2020
cat_features = train_data.dtypes[train_data.dtypes == 'object'].index
ohe = OneHotEncoder(cat_features, handle_unknown='ignore')

ohe.fit_transform(train_data)

приводит к

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Как мне это исправить?

1 Ответ

0 голосов
/ 18 июня 2020

вы сравниваете массив со строкой, но numpy может сравнивать только элементы массива по отдельности. Итак, numpy возвращает массив логических значений.

Теперь вам решать, хотите ли вы убедиться, что элемент .any() равен True или .all() элементы True.

Если вы пытаетесь получить индексы элементов типа 'object', попробуйте составить список:

cat_features = [td for td in train_data if td.dtype == 'object']

Это даст вам список всех элементов train_data, которые являются типа 'object'.

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